任何在shell上使用循环的尝试都只返回数组中的最后一个值
例如:
var myarray = [1, 2, 3, 4];
for (var i = 0; i < 4; i++) {
db.mylogs.find({ logid: myarray[i]});
}
结果只会返回logid的值,即log myarray[4]
答案 0 :(得分:0)
var myarray = [1,2,3,4];
db.mylogs.find({ "logid": {"$in": myarray} });
要获取数组中每个logid的总计数,可以使用聚合框架和以下管道操作:
var myarray = [1, 2, 3, 4],
pipeline = [
{ "$match": { "logid": { "$in": myarray } } },
{
"$group": {
"_id": "$logid",
"count": { "$sum": 1 }
}
}
];
db.mylogs.aggregate(pipeline);