首页 文章

Mongoose / Mongo在数组中找到

提问于
浏览
0

在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 回答

  • 1

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

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

相关问题