2016-12-25 3 views
0

Ich muss Mongo-Feld, die ObjectId ist, und verweist auf ein anderes Schema, wenn diese ID Id eines aktuellen Benutzers ist und dieses Feld festgelegt ist. In anderen Fällen sollte die aktuelle Benutzer-ID festgelegt werden, wenn dieses Feld nicht festgelegt ist. Wenn das Feld gesetzt ist und die ObjectID nicht mit der aktuellen Benutzer-ID übereinstimmt, sollte der Mongo das existierende Dokument zurückgeben, aber ohne Änderungen an das ObjectID-Feld.Mongoose Update-Dokument mit den Bedingungen

Jetzt finde ich Eintrag nach ID und dann Fälle in meinem JS-Code überprüfen. Dann führe ich eine andere Abfrage durch, um das Dokument zu aktualisieren. Aber ich denke, dass dies in einer Abfrage von Mongo erledigt werden könnte.

Ich verwende Mungo in meinem NodeJS

Antwort

1

Mongoose findOneAndUpdate ist die Funktion, die Sie suchen for.It hat folgende allgemeine Syntax. query.findOneAndUpdate(conditions, update, options, callback) Bearbeiten: eine Beispielabfrage angehängt.

var query = {"_id": id}; 
var update = {name: {first: 'john', last: 'smith'}}; 
var options = {new: true}; 
People.findOneAndUpdate(query, update, options, function(err, person) { 
    if (err) { 
    console.log('got an error'); 
    } 

    // at this point person is null. 
}); 
+0

Könnte mir mit detaillierteren Aussehen der Bedingungen Parameter zur Verfügung stellen? –

+0

Meine Antwort wurde mit einem Anwendungsfall aktualisiert – Gaurav