【问题标题】:MongoDB $or query in Meteor?MongoDB $或流星中的查询?
【发布时间】:2012-12-25 12:25:48
【问题描述】:

mongodb $or 运算符在meteorjs 上下文之外按预期工作:

db.users.find({$or: [{email: 'some@mail.com'},{city: 'atlanta'}]});

我会得到任何包含电子邮件 some@mail.com 或 city of atlanta 的文档的结果。

Meteor 语法中的相同查询不会产生相同的结果:

Users = new Meteor.Collection("users");
Users.find({$or: [{email: 'some@mail.com'},{city: 'atlanta'}]});

我已经阅读了流星文档 - http://docs.meteor.com/#find - 由于它没有说明任何内容,我假设它应该与 mongodb 1.6+ 实例一样运行?

【问题讨论】:

  • 新结果有何不同?
  • SomeKittens,Cursor 返回了我所有的记录,而 fetched 返回了正确匹配的数量。在我的测试中,我的集合中只有 6 个文档,find() 返回所有 6 个,正确获取匹配的 3 个。

标签: mongodb meteor


【解决方案1】:

find 返回一个游标对象。您需要使用 fetch 来获取值数组。试试:

console.log(Users.find({$or: [{email: 'some@mail.com'},{city: 'atlanta'}]}).fetch());

【讨论】:

  • 为什么会这样?
  • @HaikalNashuha 在此处阅读有关游标的所有信息:stackoverflow.com/questions/3861558/…
  • $或代表什么? - 对不起新手
  • @haemse $or 不是缩写,它是一个逻辑运算符的名称,如果其中一个或两个操作数为真,则返回真,否则返回假。在任何语言中都可以看到它很常见,并且在任何地方的行为方式都相同。
猜你喜欢
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2023-03-15
  • 2016-07-29
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
相关资源
最近更新 更多