【问题标题】:Mongoose / Mongo find in arrayMongoose / Mongo 在数组中查找
【发布时间】:2014-05-04 00:18:29
【问题描述】:

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

  owners: [{

    type: String,
    ref: '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);

      });

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

如何对 find 做同样的事情?什么是等价物?我到处找,找不到解决办法……

谢谢大家 ;)

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

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

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

    【讨论】:

    • 天哪!谢谢你,太简单了,我什至没有尝试! :)
    猜你喜欢
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2019-05-23
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多