我有一個對象數組,我想在MongoDB集合中查詢包含與我的對象數組中的任何對象匹配的元素的文檔。Mongo DB:按匹配數排序
例如:
var objects = ["52d58496e0dca1c710d9bfdd", "52d58da5e0dca1c710d9bfde", "52d91cd69188818e3964917b"];
db.scook.recipes.find({products: { $in: objects }}
不過,我想知道我是否可以通過MongoDB中匹配的數量對結果進行排序。
例如,頂部將是具有恰好三個元素匹配的「配方」:["52d58496e0dca1c710d9bfdd", "52d58da5e0dca1c710d9bfde", "52d91cd69188818e3964917b"]
。
第二選擇有兩個食譜:即["52d58496e0dca1c710d9bfdd", "52d58da5e0dca1c710d9bfde"]
,而第三個只有一個:即["52d58496e0dca1c710d9bfdd"]
這將是巨大的,如果你能得到的項目它有數量。
我想你在這裏有三個選擇:MongoDB Aggregation Framework,MongoDB Map-Reduce和操縱你的服務器中的數據。如果我有時間,我會試着用一個例子來回答。 – EmptyArsenal