4
在我的Food
模式中,我根据名为yummy
的其他字段具有不同的字段。例如:猫鼬模式创建空的数组字段
- 如果
yummy
等于pancake
,我的领域是dough
和jam
- 如果
yummy
等于pizza
,我的领域是dough
,meat
和cheese
等。它的工作原理在保存预期docs - 我只是通过我想要保存的每个文档的字段,因为除了yummy
之外,它们都不是必需的。 所以,如果我救:
{
yummy: 'pizza'
dough: 'thin'
meat : 'peperroni',
cheese: [ObjectId("59a65a4f2170d90b0436ed4b")] // refs to the cheeses collection.
}
我的文档类似的预期。
问题是与type: Array
的字段。当我保存:
{
yummy: 'pancake',
dough: 'thick',
jam: 'blueberry'
}
我的文档保存有附加cheese: []
场。在我的架构,奶酪定义如下:
Mongoose.model('Food', {
...
cheese: {
type: [{ type: Mongoose.Schema.ObjectId, ref: 'Cheese' }],
required: false
},
...
});
我检查,如果蒙戈需要文档有在更新中使用$push
情况下,预定义为空数组场 - 事实并非如此。所以,问题是:如何避免在保存时向文档添加空数组字段?
这取决于你的模式,如果你的模式有它定义了一个数组,它会创建一个空数组寿在创建文档。如果你想玩两个版本的集合(一个与奶酪,一个没有),创建两个版本的架构[看这里](https://stackoverflow.com/questions/14453864/use-more-than-one -schema-per-collection-on-mongodb) –
谢谢,它有帮助。 – wscourge
你是否发现了什么?我真的有兴趣 –