Ini disebut tatanan alam :
natural orderUrutan di mana database merujuk ke dokumen pada disk. Ini adalah urutan pengurutan default. Lihat
$naturaldanReturn in Natural Order.
Ini menegaskan bahwa secara umum Anda mendapatkannya dalam urutan yang sama dengan yang Anda masukkan, tetapi itu tidak dijamin–seperti yang Anda perhatikan.
Kembali dalam Ketertiban Alami
$naturalparameter mengembalikan item sesuai dengan urutan alami mereka dalam database. Urutan ini adalah fitur implementasi internal, dan Anda tidak boleh bergantung pada struktur tertentu di dalamnya.Penggunaan Indeks
Kueri yang menyertakan pengurutan berdasarkan
$naturalpesan jangan jangan gunakan indeks untuk memenuhi predikat kueri dengan pengecualian berikut:Jika predikat kueri adalah kondisi kesetaraan pada_idbidang{ _id: <value> }, lalu query dengan mengurutkan berdasarkan$naturalpemesanan bisa menggunakan_idindeks.MMAPv1
Biasanya, urutan alami mencerminkan urutan penyisipan dengan pengecualian berikut untuk mesin penyimpanan MMAPv1. Untuk mesin penyimpanan MMAPv1, urutan alami tidak mencerminkan urutan penyisipan jika dokumen dipindahkan karena pertumbuhan dokumen atau penghapusan operasi mengosongkan ruang yang kemudian diambil oleh dokumen yang baru dimasukkan.
Jelas, seperti dokumen yang disebutkan, Anda seharusnya tidak mengandalkan urutan default ini (Pengurutan ini adalah fitur implementasi internal, dan Anda tidak boleh mengandalkan struktur tertentu di dalamnya. ).
Jika Anda perlu mengurutkan, gunakan solusi pengurutan.
Pada dasarnya, dua panggilan berikut harus mengembalikan dokumen dalam urutan yang sama (karena urutan default adalah $natural ):
db.mycollection.find().sort({ "$natural": 1 })
db.mycollection.find()
Jika Anda ingin mengurutkan berdasarkan bidang lain (mis. name ) Anda dapat melakukannya:
db.mycollection.find().sort({ "name": 1 })