Mongo查询在javascript中

时间:2017-03-22 19:18:25

标签: javascript mongodb

我正在使用javascript来运行双管齐下的搜索。变量测试的计数为5。 js部分运行,但它不运行mongodb查询。正如您在下面看到的,mongo查询给出了计数15,它只能解决变量test中的对象编号4; test [4] .count = 15。从0到3没有查询。

var test=db.categories.find({"path":/English\/TEST/OG/},{"path":1})
test.length()==5



for(i=0;i<test.length();i++)
{
print(i);
db.assets.find({"title.categories":test[i].path}).count()
}
0
1
2
3
4
15

似乎一直在跳过查询。

1 个答案:

答案 0 :(得分:0)

您当前的方法存在的问题是,您没有在count()循环中明确打印for的结果。 mongo shell打印执行的最后一个命令的结果,这就是为什么在循环退出时碰巧看到最后一个计数的输出。

您的代码应该如下所示:

for (i=0; i<test.length(); i++) {
    print(i);
    print(db.assets.find({"title.categories":test[i].path}).count());
}

您还可以通过将查询谓词作为参数包含在count()中来更简洁地编写查询,例如:

    print(db.assets.count({"title.categories":test[i].path}));

有关使用游标的更多信息,请参阅Iterate a Cursor in the mongo Shell