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

mongo $slice forespørgsel omvendt indeks uden for rækkevidde

Ja. Sådan er javascriptet Array.prototype.slice() metode virker, som bruges internt af mongodb.

I henhold til ECMAScript®-sprogspecifikation ,

I dit tilfælde er relativeStart is -10 ,k = max((-10+5),0), k = 0; (hvor, 5 er længden af ​​dit array).

Derfor k eller skip vil altid være 0 , i disse tilfælde.

Ja, projektionsoperatøren fungerer på den måde. Medmindre en inclusion eller exclusion er eksplicit angivet i projektionsparameteren, hentes hele dokumentet med projektionsoperatorerne såsom $slice ,$elemmatch bliver anvendt.

db.items.findOne({},{"_id":1,"List": { "$slice": [-10, 3 ] }})

ville returnere:

{ "_id" : ObjectId("542babf265f5de9a0d5c2928"), "List" : [ 1, 2, 3 ] }

Den anden parameter til findOne() metode er not only for simple projection formål, felter er ikke projiceret, kun hvis nogen af ​​field navne har en værdi på 0 eller 1 imod dem. Hvis ikke returneres hele dokumentet. Hvis et felt har en projection operator for at blive anvendt, ville det være applied og projected .

Projektionsmekanismen synes skal ske på nedenstående måde, når $slice operatør er involveret.

  • Som standard vil alle felter være inkluderet til projektion.
  • Som standard alle felter, hvis værdier er afledt baseret på projektionsoperatoren, $slice , hvis sandt , vises altid, uanset nedenstående.

Trinn, der finder sted for udelukkelse eller inklusion.

  • Listen over felter, der er angivet i projektionsparameteren, akkumuleres i deres specificerede rækkefølge.
  • Kun for det første felt, der stødes på med værdien '0' eller '1' :Hvis feltet har en værdi '0' - så er det udelukket, og alle de resterende felter er markeret til at være inkluderet.Hvis et felt har '1' - så er det inkluderet, og alle de resterende felter er markeret til at blive ekskluderet.
  • For alle de efterfølgende felter er de ekskluderet eller inkluderet baseret på deres værdier.


  1. MongoDb Aggregation Datamanipulation - Objekter til Arrays

  2. Ikke i stand til at bruge { og } tegn i mongodb-konsollen

  3. Upsert indlejret dokument i yiimongodbsuite

  4. Hvordan får jeg adgang til indlejrede json-objekter i en Pandas DataFrame?