1
(問題this one啓發)發現蒙戈文件而忽略重複值MONGO側
給定數據集:
db.mycollection.insert([
{a:1, b:2, c:3},
{a:1, b:3, c:4},
{a:0, b:1, c:3},
{a:3, b:2, c:4}
{a:4, b:1, c:4}
])
我想找到一個關鍵的給定值(說應該介於0和3包括)一個和只有一個文檔,並忽略該值的後續查找,即如果已找到a值爲1的文檔,則搜索不應返回任何文檔,並將1作爲a鍵的值了。調查結果的順序可以由另一個鍵的值決定。
在我們的例子中,預計產量將是:
# Findings are sorted by value of the b key
[{a:0, b:1, c:3}, {a:3, b:2, c:4}, {a:1, b:2, c:3}]
這裏是我工作的代碼,我只好再從我的身邊,而不是蒙戈側掉落副本。
import pymongo, pandas
result = dict(db.mycollection.find({'a': {'$in': [i for i in range(4)]}}).sort('b', pymongo.ASCENDING))
print(result)
>>> [{a:0, b:1, c:3}, {a:3, b:2, c:4}, {a:1, b:2, c:3}, {a:1, b:3, c:4}]
因爲我有收集可能含有數以百萬計的文檔工作,我需要的「忽略重複」要在蒙戈端完成的一部分,既節省內存和數據傳輸時間。
對鍵b進行排序,然後按a鍵選擇組合。 – Veeram