假设我有这个架构。
var Topic = new Schema({
owner: {
type: Schema.Types.ObjectId,
ref: 'User'
},
category: {
type: Schema.Types.ObjectId,
ref: 'Category'
},
title: String,
date: Date,
lastPost: Date,
likes: Number,
posts: [{
type: Schema.Types.ObjectId,
ref: 'Post'
}]
});
var Post = new Schema({
topic: {
type: Schema.Types.ObjectId,
ref: 'Topic'
},
body: String,
date: Date,
owner: {
type: Schema.Types.ObjectId,
ref: 'User'
}
});
如果我想保存主题然后将主题添加到 Post 上的主题关联,然后推送到主题对象上的帖子数组,我必须做这个奇怪的舞蹈。
exports.create = function (req, res) {
var data = req.body.data;
var topic = new Topic();
topic.title = data.topic.title;
topic.date = new Date();
topic.lastPost = new Date();
topic.save(function (err, topicNew) {
if (err) res.send(err, 500);
var post = new Post();
post.body = data.post.body;
post.topic = topicNew;
topicNew.posts.push(post);
topic.save(function (err, t) {
if (err) res.send(err, 500);
post.save(function (err, p) {
if (err) res.send(err, 500);
return res.json(t);
});
});
});
};
我在文档中没有看到任何可以帮助我解决此问题的内容。谢谢你的帮助。