2016-11-23 5 views
1

Verwenden von Mungo, Wie kann ich mehr Objekte zu einem Objekt hinzufügen, ohne bestehende Objekte zu ersetzen?Mungo: Fügen Sie weitere Objekte zum vorhandenen Objekt hinzu

User.findOneAndUpdate(
    { userId: 0 }, 
    { userObjects: { newItem: value } } 
); 

Das Problem mit obigem Code ist, dass es alles, was vorher war es löscht und ersetzt sie durch newItem, wenn ich es nur wollte ein anderes Element zu userObjects hinzufügen (wie Push-Funktion für nicht JavaScript-Arrays).

+0

Sind Ihre 'userObjects' ein Array? Können Sie Ihr Schema teilen? –

+1

Werfen Sie einen Blick auf meine neueste Antwort in dieser [Frage] (http:// Stackoverflow.com/questions/40741373/) für Zeiger. – chridam

+0

@chridam hab es geschafft, Danke! – omidh

Antwort

0

Nach Ihrer Frage, ich denke, userObjects ist ein Array.

Sie können $push versuchen, Elemente in die array einzufügen.

User.findOneAndUpdate(
    { userId: 0 }, 
    { $push : {"userObjects": { newItem: value } }}, 
    {safe :true , upsert : true},function(err,model) 
    { 
     ... 
    }); 

Für weitere Informationen lesen Sie MongoDB $push reference.

Ich hoffe, es hilft Ihnen. Wenn Sie das Schema zur Verfügung gestellt hätten, hätte ich besser helfen können.

0

Erstellen Sie einfach eine neue Sammlung namens UserObjects und tun Sie so etwas.

UserObject.Insert({ userId: 0, newItem: value }, function(err,newObject){ 

}); 

Wenn Sie diese Benutzerobjekte von einem Benutzer erhalten möchten, dann können Sie es tun monogoose die mit query population zu übergeordneten Objekte mit zugehörigen Daten in anderen Sammlungen zu füllen. Wenn nicht, dann ist es am besten, das userObjects ein Array zu machen.

Verwandte Themen