在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” ()“查询。
你如何为一个发现做同样的事情?相当于什么?我到处搜索,找不到解决方案...
谢谢大家;)
答案 0 :(得分:1)
你使它变得比它需要的更复杂,因为你可以直接过滤数组属性,就像普通属性一样:
Server.find({owners: user._id}).exec(function(error, servers) {
console.log(servers);
});