【问题标题】:Query Pointer Array Mongoose Node.js查询指针数组 Mongoose Node.js
【发布时间】:2016-01-24 19:18:51
【问题描述】:

我有一个带有 2 个集合的普通 MongoDB:

带有组指针数组的帖子。

var Post = mongoose.model('Post', new mongoose.Schema({
    groups: {type: [{type: mongoose.Schema.Types.ObjectId, ref: 'Group'}]},
}));

var Group = mongoose.model('Group', new mongoose.Schema({
}));

现在我想查询所有在组数组中具有由 id 给出的组的帖子?

我尝试了以下方法:

return Post.find({ groups: req.body.groupId} },function(err,post){
    console.log(post);
    res.send(post);
});

我还尝试先查询组对象并传递它而不是 groupId?有人有想法吗?

【问题讨论】:

    标签: javascript arrays node.js mongodb mongoose


    【解决方案1】:

    我认为您的 Post 架构中有错误,它应该如下所示:

       var Post = mongoose.model('Post', new mongoose.Schema({
            groups: [{type: mongoose.Schema.Types.ObjectId, ref: 'Group'}],
       }));
    

    那么您的查询应该可以正常工作。

    【讨论】:

      【解决方案2】:

      除了 Yelizaveta 的更正之外,您还没有提到 .populate(aaa),如

      return Post.find({ groups: req.body.groupId} },function(err,post){
          console.log(post);
          res.send(post);
      }).populate('groups');
      

      您列出类型字段的位置:Reference ... 如果没有此 .populate(),这些字段将仅列出 ObjectId 值,而不是引用的其他集合中的基础文档:组

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-20
        相关资源
        最近更新 更多