[英]nodejs mongoose many-to-many relation on MongoDB
我试图在猫鼬的两个文档之间建立多对多关系。 只是无法使其工作。
我一直在尝试使用猫鼬populate
方法,但没有成功。 有人知道如何处理此事的任何好的教程或示例吗?
更新:
有模式
var EventSchema = new Schema({
users: [{
type: Schema.Types.ObjectId,
ref: 'User'
}]
});
和
var UserSchema = new Schema({
events: [{
type: Schema.Types.ObjectId,
ref: 'Event'
}]
});
在测试中,我像这样对event
模型user
event.users.push(user);
event.save(function(err, doc) {
user.events[0].should.equal(event._id);
done();
});
首先,我需要以某种方式保存事件以将用户添加到事件中。 然后,通过使用填充,我应该可以“修饰” events
数组和users
数组中的每个对象。 如果我理解正确填充,最好在post save
回调中。
这个测试
it('creates', function(done) {
event.users.append(user);
event.save(function(err, ev) {
user.save(function(err, doc) {
doc.events[0].should.equal(ev._id);
doc.populate('events', function(err, d) {
console.log(d);
done();
});
});
});
});
因此,我知道ID已正确存储,但是当我运行doc.populate()
,返回的文档的events
数组为空。 只是不明白。
使其正常工作...使用mongo-relation
程序包为我添加了所需的ID,但是此插件的文档使我更改了架构形式
var UserSchema = new Schema({
events: [{
type: Schema.ObjectId,
ref: 'Event'
}]
});
至
var UserSchema = new Schema({
events: [Schema.ObjectId]
});
一旦更正,它就起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.