【问题标题】:Mongoose + NodeJS - Looping through documents? [duplicate]Mongoose + NodeJS - 循环浏览文档? [复制]
【发布时间】:2015-10-24 17:39:20
【问题描述】:

我有两个集合 - 称它们为 main 和 sub。我的主要收藏如下所示,

{
  "_id" : "xxxxx",
  "subId" : "1234"
}

我的潜艇看起来像,

{
  "_id" : "1234",
  "name" : "somename"
}

我写了一个类似的查询 -

Main.find({_id : { $in : ids }},function(err, results){
  //Do something here
});

现在,我想要我的最终结果,

{
  "_id" : "xxxx",
  "subName" : "somename"
}

我如何在文档中迭代并达到预期的结果。我对 MEAN 堆栈相当陌生。任何帮助,将不胜感激。提前致谢。

【问题讨论】:

    标签: javascript node.js mongodb


    【解决方案1】:

    您可以使用参考和populate 架构,如下所示:

    var mainSchema = Schema({
      _id: Number,
      subId: Number,
      name: [{ type: Schema.Types.ObjectId, ref: 'Sub' }]
    });
    
    var subSchema = Schema({
      _id: Number,
      name: String,
    });
    
    var Main  = mongoose.model('Main', mainSchema);
    var Sub = mongoose.model('Sub', subSchema);
    

    现在您可以使用来自Sub 集合的子文档“填充”查询:

    Main.find({_id : { $in : ids }}).populate('name').exec(function(err, results){
      //Do something here
    });
    

    【讨论】:

    • 使用 mongo 的模式(通过 mongoose)不是使用 mongo 的要求
    • 我用“可以”而不是“必须”编辑了答案。
    • 非常感谢。这有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    相关资源
    最近更新 更多