Mongodb 猫鼬/猫鼬在数组中查找

Mongodb 猫鼬/猫鼬在数组中查找,mongodb,mongoose,Mongodb,Mongoose,在MongoDB/Mongoose中,我有一个服务器集合,其中包含以下元素 owners: [{ type: String, ref: 'User' }] 所有者数组包含许多链接到用户集合的id。很简单。它可以正确地填充所有内容 在Server.find()中,我必须检索具有特定所有者的服务器列表。所以正确的查询应该是 FIND IN SERVER WHERE (OWNERS ARRAY) CONTAINS (THIS ID) 我把它翻译成猫鼬

在MongoDB/Mongoose中,我有一个服务器集合,其中包含以下元素

  owners: [{

    type: String,
    ref: 'User'

  }]
所有者数组包含许多链接到用户集合的id。很简单。它可以正确地填充所有内容

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

      FIND IN SERVER WHERE (OWNERS ARRAY) CONTAINS (THIS ID)
我把它翻译成猫鼬

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

        console.log(servers);

      });
我在想“owners.$”让我们搜索一个集合数组,在本例中,将其与user进行比较。\u id但我错了,“$”似乎只能用于“.update()”查询

你怎么能为一个发现做同样的事?等价物是什么?我到处找,找不到解决办法


谢谢大家;)

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

Server.find({owner:user.\u id}).exec(函数(错误,服务器){
console.log(服务器);
});

天哪!谢谢你,太简单了,我都没试过!:)