检查集合是否返回光标

时间:2016-03-21 16:41:14

标签: mongodb meteor

此Meteor代码需要通过检查是否返回游标来检查集合中是否存在某个文档,如果没有返回游标,则该文档不存在。但即使没有价值,它总是会返回真实的#34; alosh"对于集合中任何文档中的text字段 。
为什么以及如何修复?感谢

    if (myCollection.find({text: 'alosh'}, {limit: 1})) {console.log('found');}

修改
我没有使用colllection.findOne的原因是我理解根据this post

它会慢很多

3 个答案:

答案 0 :(得分:1)

解决方案的想法:

您想要了解某个属性是否存在具有特定值的文档。你可以使用:

if(myCollection.findOne({text: 'alosh'})){
console.log("found");}

答案 1 :(得分:0)

添加点数。当光标本身返回时,光标始终是一个真值。你需要检查光标中包含的记录......

localhost:8080/profilename

因为没有返回的文档是0而0是假的,所以只应在找到文档时返回

答案 2 :(得分:0)

Mongo游标似乎与数组的行为相同,因为空游标(和空数组)的计算结果为true

所以!![] //true!!collection.find({text : "alosh"}) //true

但是collection.findOne({text : "alosh"})会使if失败 - 所以请改用

http://docs.meteor.com/#/full/findone