我有一個類別的集合,每個類別文檔都包含一個指向其父類的鏈接(根類別除外)。到目前爲止很簡單。如何用結果文件的計數來標註子文檔?
我想列出類別,並將subcategory_count
字段添加到具有直接後代計數的每個文檔。
我應該怎麼做呢? Map/Reduce可以使用嗎?
我有一個類別的集合,每個類別文檔都包含一個指向其父類的鏈接(根類別除外)。到目前爲止很簡單。如何用結果文件的計數來標註子文檔?
我想列出類別,並將subcategory_count
字段添加到具有直接後代計數的每個文檔。
我應該怎麼做呢? Map/Reduce可以使用嗎?
find()
得到他們所有人,計數每個級別上的子類別的數量,然後更新()。
但是好像你的域對象應該爲你做這件事,所以你最終得到一個可以包含類別的類別對象(它也可以包含類別...),因此一個MongoDB文檔(你是無論如何都列出了所有這些內容,因此在一個查詢中回顧整個事情是有意義的)。
MongoDB中沒有「計算列」,因此您無法同時選擇數據和計算子文檔。
這也是大多數人將數組長度與數組一起存儲的原因。
{friends_list: [1, 3, 234, 555],
friends_count: 4}
這有助於更容易檢索,篩選,排序等,但它需要多一點手動工作。
所以,你基本上限於這些選項:
商店都一個文件內。
將子類別計數存儲在類別中。
在客戶端計數子類別。
btw如果你已經列出所有這些文件,爲什麼不把它們全部存儲在一個文件中? – milan 2012-01-16 13:21:45
因爲這會讓模式變得過於複雜,並且使得樹編程變得更加困難......另外,它可能非常快速地超過16MB。 – Dor 2012-01-16 13:48:52