Q
總集到超
1
A
回答
1
好,顯示你的嘗試後,這裏是你可以做什麼:
db.a.aggregate([
{ $unwind : "$stuff" },
{ $group : {
_id: null,
all : {$addToSet : "$stuff"}
}}
])
在開始的時候unwinds一切,你有數組中的元素,然後就試圖將它們全部添加到組。
db.a.insert({ id: 1, stuff: ["A", "B"] })
db.a.insert({ id: 2, stuff: ["B", "C"] })
db.a.insert({ id: 3, stuff: ["A", "B", "C", "D"] })
爲您提供:{ "_id" : null, "all" : [ "D", "C", "B", "A" ] }
+0
謝謝 - $是多麼昂貴的放鬆?我希望有幾千條記錄,「stuff」數組的平均大小爲10-20。 – Constantinos 2014-09-28 07:29:35
+0
@Constantinos對不起,但我很難給出估計。我可以告訴你,幾千個數據庫是超小的。您也可以嘗試使用[foreach](http://stackoverflow.com/a/22890331/1090562)將所有元素收集到數組中,然後查找所有獨特元素。但是要進行測量以找出哪一個更好。 – 2014-09-28 07:33:08
相關問題
- 1. 超時總是5s
- 2. jssc總是超時
- 3. Spotfire - 總和()超過
- 4. Hsql超載總和
- 5. JSoup總是超時
- 6. 最小數組,其總和的子集是不超過關鍵
- 7. 選擇超過總值的百分比行的一個子集
- 8. 誤差超集
- 9. 包含超集
- 10. 集團,總結和轉一步到位
- 11. 流API總和與收集到地圖
- 12. 聚集索引總碎片到高(66.67%)
- 13. 複雜加入到返回超集
- 14. REST超媒體/到集合的鏈接
- 15. 總和超過在MATLAB
- 16. Geopy太慢 - 總是超時
- 17. CMake的總測試超時
- 18. 註冊-ServiceFabricApplicationType總是超時
- 19. GWT-的PhoneGap總是超時
- 20. Azure服務總線超時
- 21. LuaSocket FTP總是超時
- 22. RabbitMQ請求,總是超時
- 23. 超時總小時數
- 24. 總和超過在蜂巢
- 25. 集團和總和
- 26. 集DialogPreference總結OnPreferenceChange
- 27. 子集總和 - lisp
- 28. 如何找到一個超集,它不是一個子集
- 29. 春季集成:REST到JMS集成給出超時錯誤
- 30. postgresql集合的總和(總和)
一切皆有可能。你有沒有對此有任何想法,或者你只是想讓其他人爲你工作? – 2014-09-28 02:26:51
@SalvadorDali我試過使用'$ addToSet'。編輯的問題,以顯示我迄今爲止做了什麼。通過文檔查看,但無法找到任何其他參考來設置聯合。 – Constantinos 2014-09-28 07:01:25