2017-11-16 5 views
0

Ich habe folgendes Schema:Mungo - erhöht Wert innerhalb eines Arrays

var mySchema = new Schema({ 
    "name": String, 
    "users": [ 
    { 
     "user_id": ObjectId, 
     "counter": Number 
    }] 
}); 

Beispiel eines Dokuments:

{ 
    "name": "Test", 
    "users": [ 
     { 
      "user_id": "aaaaaa", 
      "counter": 2 
     }, 
     { 
      "user_id": "bbbbbb", 
      "counter": 3 
     }] 
} 

Wie kann ich findOneAndUpdate ein spezifisches user_id und counter erhöhen?

Zum Beispiel: Wie kann ich Test finden und die counter von user_id: bbbbb in einer einzigen Aktion aktualisieren?

+1

Was haben Sie bisher versucht? –

+0

bis jetzt mache ich 2 Abfragen, die ich vermeiden möchte: finde das Dokument mit "Test". dann gehen Sie über das Array und aktualisieren Sie den spezifischen Zähler. und dann speichern Ich bin mir nicht sicher, wie dies in einer Abfrage zu tun –

Antwort

2

Also mit dem ersten Objekt finden Sie das Objekt, das Sie aktualisieren möchten. Der zweite Parameter ist der zu aktualisierende Parameter, wobei $ verwendet wird, um nur das aktuell ausgewählte Objekt in der Abfrage zu ändern. Letzter Parameter ist Callback.

Verwandte Themen