【问题标题】:Select falsey documents in Meteor在 Meteor 中选择虚假文档
【发布时间】:2015-09-22 16:12:15
【问题描述】:

我有一个 Meteor 集合,我想在其中指定一个查询来查找属性为假的所有文档。换句话说,在它不存在的地方,null,false。在本机 Mongo 中,以下语法有效:

find({category: "Cereal", showOnList: {"$ne": true}})

在这种情况下,所有文档都没有元素 showOnList,因此与我的查询匹配。在 Meteor(客户端)中,使用此语法时出现以下错误:

Uncaught SyntaxError: Unexpected token )
    at Object.InjectedScript._evaluateOn (<anonymous>:904:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:837:34)
    at Object.InjectedScript.evaluate
(<anonymous>:693:21)InjectedScript._evaluateOn @ VM220:904InjectedScript._evaluateAndWrap @ VM220:837InjectedScript.evaluate @ VM220:693

还有其他人遇到此问题并有解决方法吗?这是 Meteor 的错误吗?

【问题讨论】:

  • 它可能不受支持,但错误提示意外令牌)也许你有一个类型?如果不是错字,您将不得不使用underscore 进行迭代并找到您需要的那些在客户端创建自己的数组
  • 谢谢。很确定它不是 type'o,因为我从 mongo 控制台直接剪切/粘贴到浏览器控制台。如果我也使用 $or 运算符,我也会遇到同样的错误。
  • 我尝试使用集合转换来添加缺失的元素,但看起来在退出 mini mongo 时会发生这种情况。对 find() 查询没有帮助。我需要一个 Collection 帮手...
  • @MichelFloyd 你说得对,我刚刚做了Posts.find({_id: {$ne: "M6RgPgC4KbnvLxz8W"}}).fetch() 工作完美
  • @MichelFloyd 大声笑我也这样做了,因为错误是赢家......这是一个错字

标签: mongodb meteor meteor-collections


【解决方案1】:

你有一个错字,这里是我刚刚测试的一个完全正常的查询

Posts.find({_id: {$ne: "M6RgPgC4KbnvLxz8W"}}).fetch()

【讨论】:

  • 你是对的。在 mongo 中再次尝试,然后在 Chrome 中再次尝试......工作。抱歉误报!
【解决方案2】:

我不知道您如何使用一条语句创建此查询。这是我的解决方法:

find({$or: [{ showOnList: null }, {showOnList: false}, {showOnList: {$exists: false}}] })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2014-08-24
    • 2017-03-14
    相关资源
    最近更新 更多