Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猫鼬&x2B;NodeJS-在文档中循环?_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 猫鼬&x2B;NodeJS-在文档中循环?

Javascript 猫鼬&x2B;NodeJS-在文档中循环?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有两个收藏-称之为main和sub。我的主要收藏如下所示 { "_id" : "xxxxx", "subId" : "1234" } 我的潜艇看起来像 { "_id" : "1234", "name" : "somename" } 我写了一个这样的查询- Main.find({_id : { $in : ids }},function(err, results){ //Do something here }); 现在,我希望我的最终结果是 { "_id" : "x

我有两个收藏-称之为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"
}

我如何在文档中迭代并获得期望的结果。我对stack还不太熟悉。任何帮助都将不胜感激。提前谢谢

您可以使用如下引用和模式:

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)并不是使用mongoI的必要条件,mongoI将答案编辑为“可以”而不是“必须”。非常感谢。这很有帮助。