Mongoose / Mongo在数组中找到

时间:2014-05-03 16:11:21

标签: mongodb mongoose

在MongoDB / Mongoose中,我有一个获得此元素的服务器集合......

  owners: [{

    type: String,
    ref: 'User'

  }]

owner数组包含许多链接到User集合的id。非常简单。它填充正确和一切。

在Server.find()中,我必须检索获得特定所有者的服务器列表。所以正确的查询就像是

      FIND IN SERVER WHERE (OWNERS ARRAY) CONTAINS (THIS ID)

我在Mongoose中翻译为......

      Server.find({'owners.$': user._id}).exec(function(error, servers) {

        console.log(servers);

      });

我在想“所有者。$”让我们搜索一个集合数组,在这种情况下将它与user._id进行比较,但我错了,似乎“。$”只能用于“.update” ()“查询。

你如何为一个发现做同样的事情?相当于什么?我到处搜索,找不到解决方案...

谢谢大家;)

1 个答案:

答案 0 :(得分:1)

你使它变得比它需要的更复杂,因为你可以直接过滤数组属性,就像普通属性一样:

Server.find({owners: user._id}).exec(function(error, servers) {
    console.log(servers);
});