我有一组ID,例如
[ID1,ID2,ID3 ......]
我有一个包含文档的集合,例如
{
"_id" : ObjectId("1111111111111"),
"phoneNumber" : "1234567891",
"fid" : "id1",
"pid" : "abcd",
"activeFlag" : true
},
{
"_id" : ObjectId("2222222222"),
"phoneNumber" : "1234567891",
"fid" : "id1",
"pid" : "efgh",
"activeFlag" : true
},
{
"_id" : ObjectId("33333333333"),
"phoneNumber" : "1234567891",
"fid" : "id2",
"pid" : "xyz",
"activeFlag" : true
},
{
"_id" : ObjectId("4444444444444"),
"phoneNumber" : "1234567891",
"fid" : "id3",
"pid" : "mnop",
"activeFlag" : true
}
我想在我的ID数组中找到与fid匹配的文档, 我也想根据_id对它进行排序,限制是9。
如果获取id1,那么我需要所有fid为id1的文档,就像那样。
答案 0 :(得分:1)
这个脚本应该可以解决问题
var listId = ["id1", "id2", "id3"];
var cursor = db.collection.find({fid: {$in: listId}}).sort({_id: 1}).limit(9);
// iterate over documents
if (cursor != null && cursor.hasNext()){
while (cursor.hasNext()){
// print documents
print(JSON.stringify(cursor.next()));
}
}
运行它,创建文件名script.js
,复制上面的代码,然后运行命令
mongo databaseName < script.js