Mongoose + NodeJS - 循环浏览文档? [复制]

Posted

技术标签:

【中文标题】Mongoose + NodeJS - 循环浏览文档? [复制]【英文标题】:Mongoose + NodeJS - Looping through documents? [duplicate] 【发布时间】: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 堆栈相当陌生。任何帮助,将不胜感激。提前致谢。

【问题讨论】:

【参考方案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 的要求 我用“可以”而不是“必须”编辑了答案。 非常感谢。这有帮助。

以上是关于Mongoose + NodeJS - 循环浏览文档? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

nodejs中的异步foreach和mongoose

Nosql / mongoose——设计[重复]

按月对记录进行分组并计数 - Mongoose、nodeJs、mongoDb

在nodejs(异步)中寻找循环和回调的正确模式

浏览器和nodejs事件循环(Event Loop)区别

ObjectId 的 NodeJS/Mongoose 模式数组