使用node.js,mongoose(3.5),mongodb . 在DB中有两个集合:
var AuthorSchema = new mongoose.Schema({
name: { type: String },
});
var StorySchema = new mongoose.Schema({
title: { type: String },
author: { type: type: Schema.Types.ObjectId },
});
我想要做的是检索一个作者并用一个从Story中查找并与作者匹配的子集合(比如“故事”)填充它 . 是的,很像SQL连接 .
所有这些例子都在AuthorSchema上工作,它们有一个引用StorySchema对象的objectids数组 - 工作正常 . 但我想走向相反的方向;部分原因是最小化插入/更新 . 如果我按照示例添加新商店,则需要添加新的Story文档并更新作者 . 我想插入一个引用作者的新故事 .
我怀疑populate()是正确的方法,但无法让它工作 . 我正在做这样的事情:
Author.find({name: 'Asimov').populate({
path: 'stories',
model: 'Story',
match: {'author': this['_id']},
}).exec(function(err, authors) {
console.log(authors);
})
但是,这并不会返回返回作者中的任何故事成员 . 这不是一个populate()解决方案吗?我真的需要以不同的方式构建模式吗?或者是mongoose / mongo的其他功能可以做我正在寻找的东西 .
1 回答
在故事模式中,执行以下操作:
然后你就可以跑了