sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan bestiller MongoDB deres dokumenter i én samling?

Det kaldes naturlig orden :

natural order

Den rækkefølge, som databasen henviser til dokumenter på disk. Dette er standard sorteringsrækkefølge. Se $natural og Return in Natural Order .

Dette bekræfter, at du generelt får dem i samme rækkefølge, som du indsatte, men det er ikke garanteret – som du har bemærket.

Returnering i naturlig rækkefølge

$natural parameter returnerer elementer i henhold til deres naturlige rækkefølge i databasen. Denne bestilling er en intern implementeringsfunktion, og du bør ikke stole på nogen bestemt struktur i den.

Indeksbrug

Forespørgsler, der inkluderer sortering efter $natural bestille ikke brug indekser til at opfylde forespørgselsprædikatet med følgende undtagelse:Hvis forespørgselsprædikatet er en lighedsbetingelse på _id felt { _id: <value> } , derefter forespørgslen med sorteringen efter $natural ordre kan bruge _id indeks.

MMAPv1

Typisk afspejler den naturlige rækkefølge indsættelsesrækkefølgen med følgende undtagelse for MMAPv1-lagermotoren. For MMAPv1-lagringsmotoren afspejler den naturlige rækkefølge ikke indsættelsesrækkefølgen, hvis dokumenterne flyttes på grund af dokumentvækst, eller fjernoperationer frigør plads, som derefter optages af nyligt indsatte dokumenter.

Som de nævnte dokumenter bør du naturligvis ikke stole på denne standardrækkefølge (Denne bestilling er en intern implementeringsfunktion, og du bør ikke stole på nogen bestemt struktur i den. ).

Hvis du skal sortere tingene, så brug sorteringsløsningerne.

Grundlæggende skal de følgende to opkald returnere dokumenter i samme rækkefølge (da standardrækkefølgen er $natural ):

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

Hvis du vil sortere efter et andet felt (f.eks. name ) kan du gøre det:

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


  1. Hvordan kan jeg indlæse data fra mongodb-samling til pandas' DataFrame?

  2. Socket.io, Redis Store og IE

  3. Hvordan bruger man MongoDB-transaktion ved hjælp af Mongoose?

  4. Hvordan fjerner jeg dokumenter ved hjælp af Node.js Mongoose?