【问题标题】:MongodB in operator return on blank array when it should not运算符中的 MongodB 在不应该返回空白数组时返回
【发布时间】:2013-04-14 00:18:30
【问题描述】:

我在客户端运行的coffeescript中有一个模板函数:

Template.leftNav.starred = () ->
   user = Meteor.user()
   if ! user 
        return
   else
        starredPages = user.profile.starredPages
        starred =  Entries.find({ _id :{in: starredPages}}).fetch()

Meteor.user() 返回

Object {_id: "AHSwfYgeGmur9oHzu", profile: Object}
  _id: "AHSwfYgeGmur9oHzu"
  profile: Object
  starredPages: Array[4]
     0: "asdasdasdasdasd"
     1: "abc123"
     2: "blobby"
     3: "bxSbMgszYxbCqDonF"

Meteor Entries.find({}) 返回:

Entries
     Meteor.Collection {_makeNewID: function, _transform: null, _manager: Meteor._LivedataConnection, _collection: LocalCollection, _name: "entries"…}
    _collection: LocalCollection
    _savedOriginals: null
    docs: Object
        Wkxxpapm8bbiq59ig:
            _id: "M3vDJNMZJjBDfrc7D"
        bxSbMgszYxbCqDonF:
            _id: "bxSbMgszYxbCqDonF"

执行模板函数中的代码:

starredPages = user.profile.starredPages
starred =  Entries.find({ _id :{in: starredPages}}).fetch()

即使 starredPages 数组中的 bxSbMgszYxbCqDonF 值与 Entries.docs 集合数组中的 _id 值匹配,starred 也会作为空白数组返回。

这是为什么以及如何使其返回 starredPages 数组和 _id 之间的匹配项?

【问题讨论】:

    标签: javascript mongodb coffeescript meteor


    【解决方案1】:

    你需要使用$in

    starred =  Entries.find({ _id :{$in: starredPages}}).fetch()
    

    简单的错字;)

    【讨论】:

      猜你喜欢
      • 2017-05-18
      • 2015-05-19
      • 1970-01-01
      • 2017-01-02
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 2014-04-02
      相关资源
      最近更新 更多