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
你是否發現了什麼?我真的有興趣 –