我有一個貓鼬的模式是這樣的:貓鼬嵌套數組,樹和嵌入式文件
Schema: Item
Schema: SubItem
Schema: SubItemTwo
//Item Schema looks like this:
Item: {
SubItem: [SubItemSchema]
}
SubItemSchema looks like this:
{
field1: String,
field2: String,
OtherItems: [SubItemTwoSchema]
}
SubItemTwoSchema是一些字符串字段的扁平架構。
基本上我發現使用查詢,$ set,$ inc和$ addToSet等操作符來處理SubItemSchema.OtherItems幾乎是不可能的。 我不相信貓鼬方法是有效的,因爲我必須基本保存()和保存()即Item.SubItem [0] .OtherItems.push(東西)
Mongoose只支持一個嵌入式文檔數組,並且用於一個數組中的數組 - 對第二級數組來說變得不可能做得太多。
所以我的問題是人們用什麼方法來處理這種類型的數據模型,即一個具有子數組的數組對象。我注意到關於樹結構的文檔http://docs.mongodb.org/manual/tutorial/model-tree-structures/,但我還沒有看到如何在不使用貓鼬的推送方法的情況下建模2層嵌套數組的任何實現。有關建模樹結構的MongoDb文檔需要添加字段以引用父代和祖先,但這看起來過於誇張,因爲我的樹只有3層深。
所以我應該: 1.使用文件陣列 2.破除貓鼬和使用不屬於陣列中的嵌入文檔 3.重新建模我的數據,讓我不要有一個數組中的數組?
如果選項3是答案,您會如何建議重新構建模式,以便SubItemTwo文檔可以是SubItem文檔的子項,並且SubItem文檔可以是父項的子項。
謝謝
嘿,你的祖先樹還在使用當前的貓鼬版本嗎?用法記錄在某處嗎?謝謝! @Marius –
我有一段時間沒有更新它。所以有很大的可能性,它不會工作,沒有使用任何有關半年以上的mongo。找出最簡單的方法是簡單嘗試 – Marius