MongoDB: Verwenden Sie save (), um ein vorhandenes Dokument in einer Sammlung zu aktualisieren

8

alle zusammen. Ich liebe Manga. Und jetzt lerne ich auch, Mongo zu lieben: -)

Es gibt eine Erklärung von , wie save () verwendet wird, um ein vorhandenes Dokument in einer Sammlung zu aktualisieren in MongoDB PHP ? aber ich konnte es nicht auf die "Realität" der PHP anwenden: -)

%Vor%

Hier ist mein Testcode:

%Vor%

Tatsache ist, dass save () im PHP-Beispiel das Objekt überschreibt, während es im JS-Beispiel es aktualisiert. Ich wünschte, ich könnte in PHP das gleiche wie in JS reproduzieren.

Vielen Dank im Voraus.

    
Roger 01.01.2011, 12:35
quelle

1 Antwort

12

Diese Beispiele machen nicht dasselbe ...

In den JS-Beispielen haben Sie das Objekt mongo

deklariert %Vor%

Sie haben dann das selbe -Objekt geändert, um type ...

hinzuzufügen %Vor%

Im PHP-Beispiel haben Sie TWO-Objekte deklariert ...

%Vor%

Das wäre wie folgendes in der JS-Shell ...

%Vor%

Also Äpfel ist ein anderes Objekt / Dokument von Orangen ... daher wenn Sie save () ausführen und das NEUE Objekt übergeben überschreibt das alte Objekt vollständig.

Ihr update () hat gut funktioniert, weil Sie nach dem Objekt gesucht haben ...

%Vor%

Dann führte das Update auf das Objekt ; Übergeben Sie das neue Feld, anstatt ein neues Objekt zu übergeben, um es zu ersetzen ...

%Vor%

In den JS-Beispielen hatten Sie nur ein Objekt , so dass es im Grunde an das Update angehängt wurde, anstatt es zu ersetzen.

Korrekter PHP-Code

Die folgende PHP würde replizieren, was Sie in der JS-Shell getan haben ...

%Vor%

Hinweis : Ich würde stark empfehlen, dass Sie nicht Ihr eigenes Objekt _id setzen und stattdessen den Treiber dazu veranlassen Sie wie im obigen Beispiel.

    
Justin Jenkins 02.01.2011, 03:37
quelle

Tags und Links