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

opsætte et felt i et underdokument i et array efter indeks i MongoDB

Du vil bruge update kommando på din samling som følger (eksempel):

db.collection.update(
    { "my_array.title" : "title_one" },
    { $inc : { "my_array.$.click_number" : 1 } }
);

Hvad skete der lige?

På den første parameter i update du definerer en query for at matche dokumenter, du ønsker at opdatere. Vi søger efter en ejendom med navnet title inde i arrayet kaldet my_array . Du kan matche mod body eller email selvfølgelig ved at ændre priknotationen til:"my_array.email" .

Den anden parameter definerer opdateringen, den ændring, der skal anvendes. Vi har en $inc operatør for at øge felter, som vi bruger i denne erklæring. query vælger et dokument med det matchede array-element. Du kan nå ud til dette matchede matrixelement med $ notation. "my_array.$" vælger det matchede array-element, som har en title , email og body . Hvis du forsøger at give værdi til et ikke-eksisterende felt, vil MongoDB gøre det for dig. Hvis feltet ikke eksisterer, $inc indstiller feltet til det angivne beløb. $inc operatøren accepterer positive og negative trinvise beløb.

Få mere at vide om opdateringskommandoen.

Et andet eksempel:

db.collection.update(
    { _id : "john", "my_array.email" : "email" },
    { $inc : { "my_array.$.click_number" : 1 } }
);



  1. Sådan eksporteres MongoDB-forespørgselsresultater til en CSV-fil

  2. Hvorfor er MongoDB Node Driver-genererende instanspulje ødelagte fejl?

  3. MongoDB:$eller en fuldtekstsøgning og en $in

  4. Hvordan kan jeg forbedre MongoDB bulk ydeevne?