MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как MongoDB подрежда своите документи в една колекция?

Нарича се естествен ред :

natural order

Редът, в който базата данни препраща към документи на диска. Това е редът на сортиране по подразбиране. Вижте $natural и Return in Natural Order .

Това потвърждава, че като цяло ги получавате в същия ред, който сте поставили, но това не е гарантирано – както забелязахте.

Връщане в естествен ред

$natural параметърът връща елементи според техния естествен ред в базата данни. Това подреждане е вътрешна функция за внедряване и не трябва да разчитате на никаква конкретна структура в него.

Използване на индекс

Заявки, които включват сортиране по $natural поръчайте нене използвайте индекси, за да изпълните предиката на заявката със следното изключение:Ако предикатът на заявката е условие за равенство на _id поле { _id: <value> } , след това заявката със сортиране по $natural поръчката може да използва _id индекс.

MMAPv1

Обикновено естественият ред отразява реда на вмъкване със следното изключение за MMAPv1 механизма за съхранение. За механизма за съхранение MMAPv1 естественият ред не отразява реда на вмъкване, ако документите се преместят поради нарастване на документа или операциите за премахване освобождават място, което след това се заема от нововмъкнатите документи.

Очевидно, подобно на споменатите документи, не трябва да не разчитайте на този ред по подразбиране (Това подреждане е вътрешна функция за внедряване и не трябва да разчитате на никаква конкретна структура в него. ).

Ако трябва да сортирате нещата, използвайте решенията за сортиране.

По принцип следните две извиквания трябва да връщат документи в същия ред (тъй като редът по подразбиране е $natural ):

db.mycollection.find().sort({ "$natural": 1 })
db.mycollection.find()

Ако искате да сортирате по друго поле (напр. name ) можете да направите това:

db.mycollection.find().sort({ "name": 1 })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Разделете низ в масив от поднизове или знаци в MongoDB

  2. MongoDB с Mongoid в Rails – геопространствено индексиране

  3. Защо mongoDB използва objectID?

  4. Изображението, върнато от REST API, винаги се показва неработещо

  5. Получаване на списък с уникални вградени/вложени обекти в документ на MongoDB