在MongoDB / Mongoose中我有一个Server集合,它有这个元素......
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 回答
你正在使它变得比它需要的更复杂,因为你可以直接过滤数组属性,就像普通属性一样: