MongooseJS - ????????????
Posted
技术标签:
【中文标题】MongooseJS - 如何保存文档和引用的文档【英文标题】:MongooseJS - How to save document and referenced document 【发布时间】:2013-05-23 09:35:41 【问题描述】:Request.findOne(_id: id).populate("user").exec(function(err, request)
if (!err)
request.user.firstname = firstname;
request.date = date;
request.save(next);
保存后,日期已更改,但用户的名字未更改。 型号:
var Request = new Schema(
user:
type: ObjectId,
ref: 'User',
required: true
,
date:
type: Date,
default: Date.now()
,
我还是可以做到的
request.user.save(function(err)
if(!err)
request.save(next)
);
但为什么第一个不起作用?
【问题讨论】:
【参考方案1】:request
和 user
是不同集合中的文档,因此它们都需要自己的 save
操作。这就是 Mongoose(以及一般的 MongoDB)的工作方式,因为没有更新操作一次影响多个集合。
【讨论】:
【参考方案2】:检查 Mongoose documentation on populate 的“更新参考”部分。
您将在示例中看到,您仍然必须保存您创建的Request
和User
文档。 (在示例中,他们首先保存用户“guille”,然后在回调中保存“故事”。)
在 Mongoose 中,SubDocs 在父文档保存时保存,但 .populate
不这样做。
【讨论】:
以上是关于MongooseJS - ????????????的主要内容,如果未能解决你的问题,请参考以下文章