如何使用 Waterline 进行可选关联?
How to have an optional association using Waterline?
我正在为一个项目使用 sails.js,到目前为止一切正常。除了我不知道如何在我的两个模型之间建立可选关联。如果我不指定一个,那么如果我使用 populate() 它会使用第一个可用的。
我有这两个型号:
// Book.js
module.exports = {
attributes: {
title: 'string',
serie: { model: 'serie' }
},
};
// Serie.js
module.exports = {
attributes: {
name: 'string',
books: { collection: 'book', via: 'serie' }
}
};
如果我这样做:
$ sails console
> Book.create({title: "Title"}).exec(function(err, book) {
Book.findOne({id: book.id }).populateAll().exec(function(err, book) {
console.log(book);
});
});
我明白了:
{
serie: { name: 'Previously inserted serie' },
title: 'Title',
id: '55d6230122e3b1e70d877351'
}
为什么系列不是空的?插入书时,我没有指定任何系列,但它仍然链接到一个随机的。
这实际上是 sails-mongo
适配器的错误。我提出了修复它的拉取请求。
我正在为一个项目使用 sails.js,到目前为止一切正常。除了我不知道如何在我的两个模型之间建立可选关联。如果我不指定一个,那么如果我使用 populate() 它会使用第一个可用的。
我有这两个型号:
// Book.js
module.exports = {
attributes: {
title: 'string',
serie: { model: 'serie' }
},
};
// Serie.js
module.exports = {
attributes: {
name: 'string',
books: { collection: 'book', via: 'serie' }
}
};
如果我这样做:
$ sails console
> Book.create({title: "Title"}).exec(function(err, book) {
Book.findOne({id: book.id }).populateAll().exec(function(err, book) {
console.log(book);
});
});
我明白了:
{
serie: { name: 'Previously inserted serie' },
title: 'Title',
id: '55d6230122e3b1e70d877351'
}
为什么系列不是空的?插入书时,我没有指定任何系列,但它仍然链接到一个随机的。
这实际上是 sails-mongo
适配器的错误。我提出了修复它的拉取请求。