我有一個mongoDB集合,其中有一個數組字段,用於表示用戶所屬的列表。在MongoDB中返回自定義字段
user {
screen_name: string
listed_in: ['list1', 'list2', 'list3', ...] //Could be more than 10000 elements (I'm aware of the BSON 16MB limits)
}
我現在用的是* listed_in *場拿到成員列表
db.user.find({'listed_in': 'list2'});
我還需要查詢特定的用戶知道他是否是特定列表的成員
var user1 = db.findOne({'screen_name': 'user1'});
在這種情況下,我將獲得其所有成員的* listed_in *字段。
我的問題是: 有沒有辦法預先計算mongoDB中的自定義字段? 我需要通過的* listed_in迭代*陣列知道,如果能夠得到這樣的領域,user1.isInList1,user1.isInList2
現在我必須這樣做,在客戶端用戶是「list1」的成員,但* listed_in *可能有一千個元素。
當你說你想得到像'user1.isInList1'這樣的結果時,這是否意味着你希望mongo爲每個存在的列表在文檔的根級設置一個布爾鍵?難道這不是很難預測嗎?你能解釋一下你想用最終結果對象完成的問題嗎?此外,如果您打算快速創建該文檔併爲listed_in編制索引,我相信索引列表的默認5k元素限制。你可以通過 – jdi 2011-12-26 22:52:15
來提高它在哪裏可以找到更多關於索引列表的5k元素限制的信息?我以前沒有聽說過。 – aartiles 2011-12-27 07:48:11
奇怪。我現在正在做我的第一個MongoDB項目,當我研究索引數組時,我發現信息表示索引數組有5k元素限制。現在,我再也找不到了。如果我是這樣的話,我很高興在這個問題上出錯:-) – jdi 2011-12-27 17:03:13