我有以下问题我试图在Mongo中运行:
var raw = db.SO.distinct("capabilities.cid");
var len = raw.length;
for (x=0; x<len; x++)
{
db.test.aggregate({$match: {"cid" : raw[x]}})
};
原始变量会返回一个能力ID列表,如下所示:
{
"0" : "CID0001",
"1" : "CID0002",
"2" : "CID0003",
"3" : "CID0004",
"4" : "CID0005",
"5" : "CID0006",
"6" : "CID0007"
}
然后我的循环遍历列表并将每个CID与包含该另一个名为test
的集合中的CID的每个文档相匹配。我遇到的问题是,当我运行此查询时,它只会让我回到最后一个查询。所以它似乎在列表上运行循环。使用last完成,然后从最后一项运行查询。如果我在raw[x]
内指定索引,那么类似raw[3]
的内容就会将我带回原始列表中位置3的CID的测试中的CID文档。所以说,有一种方法可以让我遍历整个列表并在每个CID上执行查询,而不仅仅是最后一个。