[英]When retrieving records from a MongoDb collection, do the records come back sorted based on the index that was set up for that collection?
我有一個看起來像這樣的情況:我有一個名為“ Test”的集合,並且已經為其建立了索引,索引看起來像這樣:
{
"A" : 1,
"B" : 1,
"C" : 1
}
在我的代碼中,我基於“ A”為某個值來檢索記錄:
List<Test> tests = Test.Find(Query.EQ("A", CertainValue)).ToList();
令我驚訝的是,所有記錄都按索引中提到的順序返回(“ B”升序,然后“ C”升序)
我想知道這種行為是否總是可以預期的,是否總是根據索引對記錄進行排序,還是我只是在想一些東西,而這只是一個例子?
PS。 記錄不會按排序輸入到集合中,因此這不是記錄的自然順序。
就像許多其他詞典實現一樣, 數據庫中的順序未定義或保證(有上限的集合除外),並且隨時可能更改:
“自然順序”定義為集合中對象的數據庫自然順序。
當執行不帶參數的find()時,數據庫將以自然前向順序返回對象。
對於標准表,自然順序並不是特別有用,因為盡管順序通常接近插入順序,但不能保證一定如此。 但是,對於上限集合,可以保證自然順序為插入順序。
如果需要以某種方式對它們進行排序,請使用顯式排序,或者參考特定的驅動程序(C#)實施文檔以查看是否為您對它們進行了排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.