var otherLanguages=[ "English","Arabic","French"];
var first, second;
db.collection.find({ $and: [ { "Language" : { $nin : otherLanguages} },{"Language":{ $ne:null}} ]}).forEach(function(obj){
逐一删除341个文档。在这些文档中,我想找出满足两个if语句的文档。后来,我想收集它的数量。
if (obj.find({ $and: [{'POS': { $eq: "Past" } },{'Desp': { $ne: null } }] })) { first= first+1;}
if (obj.find({ $and: [{'POS': { $eq: "Past" } },{'Desp': { $eq: null } }] })) {second= second+1;}
});
print (first,second)
我知道我不能在obj上使用find()函数,但有没有办法搜索这个“bson obj”来查找计数。 如果这不可行,那么请建议一种获得所需结果的方法。
答案 0 :(得分:0)
如果我正确理解了您的问题,您可以通过使用聚合框架来实现这一目标:
db.collection.aggregate({
// filter out all documents that you don't care about
$match: {
"Language": { $nin: otherLanguages, $ne: null },
"POS": "Past"
},
}, {
// then split into groups...
$group: {
_id: { $eq: [ "$Desp", null ] }, // ...one for the "eq: null" and one for the "ne: null"
"count": { $sum: 1 } // ...and count the number of documents in each group
}
})