這個想法是將一種行號返回給mongodb聚合命令/管道。類似於我們在RDBM中所做的。在mongodb聚合命令/管道中添加某種行號
它應該是一個唯一的數字,如果它完全匹配一行/數字就不重要。
對於這樣的查詢:
[ { $match: { "author" : { $ne: 1 } }} , { $limit: 1000000 } ]
返回:
{ "rownum" : 0, "title" : "The Banquet", "author" : "Dante", "copies" : 2 }
{ "rownum" : 1, "title" : "Divine Comedy", "author" : "Dante", "copies" : 1 }
{ "rownum" : 2, "title" : "Eclogues", "author" : "Dante", "copies" : 2 }
{ "rownum" : 3, "title" : "The Odyssey", "author" : "Homer", "copies" : 10 }
{ "rownum" : 4, "title" : "Iliad", "author" : "Homer", "copies" : 10 }
是否有可能產生這樣的rownum在MongoDB中?
不,這是不可能的。你可能會更好地解釋*「爲什麼你認爲你需要這個」*。它通常用於SQL實現窗口化分頁結果,比如項目排序。如果您想解釋您的用例,可能還有其他選擇。 –
這是一個改進 - 當數據量很大時(> 100mio),在使用MongoDB數據源獲取數據的BI工具上使用id作爲字符串真的是一個壞主意。除非... – ic3
將數字添加到MongoDB中的行(您無法做到這一點)意味着要通過所有結果/數據(大概在選擇「頁面」之前)並一次分配一行。所以,由於架構的作用方式決不會有任何改進。我給你的選擇。 1.接受「不能完成」。 2.解釋你的用例,並可能給出一個比迄今爲止能夠想到的更好的替代方法。正如我所看到的,一個是死路一條,另一個可能只是去某個地方。 –