使用 node.js、mongoose (3.5+)、mongodb。在数据库中有两个集合:
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() 解决方案吗?我真的需要以不同的方式构建架构吗?或者是否有其他一些猫鼬/蒙戈的功能可以满足我的需求。