Heim Datenbank MongoDB Aktualisierung des MongoDB-Dokuments (PHP-Codebeispiel)

Aktualisierung des MongoDB-Dokuments (PHP-Codebeispiel)

Aug 24, 2020 pm 02:39 PM
mongodb

MongoDB-Aktualisierungsdokumente sind in zwei Kategorien unterteilt:

  • Dokumentenersetzung, altes Dokument vollständig durch ein neues Dokument ersetzen

  • Modifikator, einige Dokumente ändern

Dokumentenersetzung

Dokumentenersetzung verwenden Es ist ganz einfach, schauen wir uns die Demo an:

$collect->insertOne(['name' => 'lakers', 'nums'=> 16]);
$collect->replaceOne(
    ['name'=>'lakers'], 
    ['name' => 'heat', 'nums'=>3]
);
Nach dem Login kopieren

Verwenden Sie Modifikatoren, um komplexere Aktualisierungsvorgänge durchzuführen, wie zum Beispiel das Ändern, Hinzufügen oder Löschen von Schlüsseln.

Modifikator „$set“

„$set“ wird verwendet, um den Wert eines Feldes anzugeben. Wenn dieses Feld nicht vorhanden ist, erstellen Sie es.

$collect->insertOne([
    'name' => 'james',
    'age' => 35,
]);

$collect->updateOne(['name'=>'james'],
    ['$set' => ['fruit' => 'apple']]
);
// fruit字段不存在,则会创建该字段
Nach dem Login kopieren

Wenn Ihnen Apfel jetzt nicht gefällt und Sie zu Erdbeere wechseln möchten

$collect->updateOne(['name'=>'james'],
    ['$set' => ['fruit' => 'strawberry']]
);
Nach dem Login kopieren

„$set“ kann auch den Schlüsseltyp ändern. „$set“ kann auch eingebettete Dokumente ändern der Wert

Gleiche wie der Modifikator „$set“. Wenn das Feld nicht vorhanden ist, wird es automatisch erstellt. Hinweis: Dieser Feldwert kann nur Zahlen sein.

# 不止喜欢草莓,还喜欢梨子、香蕉。
$collect->updateOne(['name'=>'james'],
    ['$set' =>
        ['fruit' => 
            ['strawberry', 'banana', 'pear'] 
        ]
    ]
);
Nach dem Login kopieren
Jetzt wurden 10 Punkte erreicht.
$collect->insertOne([
    'name' => 'james',
    'age' => 35,
    'brothers' => ['name' => 'wade', 'age'=> 38]
]);

$collect->updateOne(['name'=>'james'],
    ['$set' =>
        ['brothers.name' => 'paul']
    ]
);
Nach dem Login kopieren
Später habe ich 50 Punkte aufgebraucht

$collect->updateOne(['name'=>'james'],
    ['$unset' =>
        ['brothers' => '']
    ]
);
Nach dem Login kopieren

Array-ModifikatorMongoDB bietet spezielle Modifikationsmethoden für Arrays.

„$push“ fügt Elemente hinzu

„$push“ kann Elemente zum Array hinzufügen. Wenn das Array nicht vorhanden ist, wird das Array automatisch erstellt. Es gibt jetzt ein Dokument zum Speichern von Artikeldaten:

$collect->updateOne(['name'=>'james'],
    ['$inc' =>
        ['scores' => 61]
    ]
);
## 现有积分61
Nach dem Login kopieren
"$each" fügt mehrere Elemente hinzu

'$push' kann Elemente gleichzeitig anordnen. Wenn Sie mehrere Elemente gleichzeitig hinzufügen möchten, müssen Sie dies tun verwenden Sie es zusammen' $each'.

$collect->updateOne(['name'=>'james'],
    ['$inc' =>
        ['scores' => 10]
    ]
);
## 现有积分71
Nach dem Login kopieren
"$slice" behält n Elemente bei

'$push' und '$slicet' werden zusammen verwendet, um die neuesten n Datenstücke beizubehalten. Der Wert von '$slice' kann nur eine negative ganze Zahl sein . Ich möchte zum Beispiel nur die letzten 3 Kommentare behalten:

$collect->updateOne(['name'=>'james'],
     ['$inc' =>['scores' => -50]
 ] ); 
 ## 现有积分21
Nach dem Login kopieren
$collect->insertOne([
     '_id' => 1,      
     'title'=>'study mongodb',      
     'create_time' => '2020-08-24 12 :31' 
]); 
$push = ['$push' => ['comments' => 'comments1'] ]; 
$collect->updateOne(['_id' => 1 ], $push);
Nach dem Login kopieren
$push = [    
     '$push' => 
         ['comments' => 
             ['$each' => ['comment1', 'comment2', 'comment3']]
         ] 
      ]; 
$collect->updateOne(['_id' => 1 ], $push);
Nach dem Login kopieren
„$sort“-Sortierung

kann auch mit „$sort“ verwendet werden, um die 3 Kommentare mit den meisten Likes zu behalten.

# 目前数据如下
 > db.users.find() 
{ "_id" : 1, "title" : "study mongodb", "create_time" : "2020-08-24 12:31", "comment" : [ "comment1", "comment2", "comment3", "comment4", "comment5", "comment6" ] }
Nach dem Login kopieren
Sehen wir uns an, wie die Daten in der Sammlung aussehen:
$push = [
     '$push' => [ 
        'comment' => [ 
            '$each' => ['comment7', 'comment8', 'comment9'],                                '$slice' => -3 
        ],
     ], 
]; 
$collect->updateOne(['_id' => 1 ], $push);
Nach dem Login kopieren

Beachten Sie, dass Sie nicht einfach „$slice“ oder „$sort“ mit „$push“ verwenden können, sondern „$each“ verwenden müssen. .

„$addToSet“ vermeidet das Einfügen doppelter Daten

Wenn Sie „$addToSet“ zum Hinzufügen neuer Array-Elemente verwenden, können Sie das Hinzufügen doppelter Daten vermeiden, z. B.

# 现数据如下 
db.users.find() 
{ "_id" : 1, "title" : "study mongodb", "create_time" : "2020-08-24 12:31", "comment" : [ "comment7", "comment8", "comment9" ] }
Nach dem Login kopieren

Die obige Änderung wird nicht erfolgreich sein, da Apple dies bereits getan hat existiert. „$addToSet“ kann auch mit „$each“ verwendet werden, um mehrere Array-Elemente einzufügen.

# 目前是集合内是空的,么有任何文档
$collect->insertOne(['_id' => 1, 'title'=>'study mongodb', 'create_time' => '2020-08-24 12:31']);
$push = [
    '$push' => [
        'comment' => [
            '$each' => [
                ['comment' => 'php', 'like' => 100], 
                ['comment' => 'mysql', 'like' => 10], 
                ['comment' => 'linux', 'like' => 200], 
                ['comment' => 'java', 'like' => 1000], 
                ['comment' => 'nginx', 'like' => 300], 
                ['comment' => 'composer', 'like' => 500], 
            ],
            '$slice' => -3,
            '$sort' => ['like' => 1]
        ],
    ],
];
Nach dem Login kopieren

Elemente löschen

Sie können das Element ganz links oder ganz rechts über „$pop“ löschen.

> db.users.find()
{ "_id" : 1, "title" : "study mongodb", "create_time" : "2020-08-24 12:31", "comment" : [ { "comment" : "nginx", "like" : 300 }, { "comment" : "composer", "like" : 500 }, { "comment" : "java", "like" : 1000 } ] }
Nach dem Login kopieren
Sie können bestimmte Elemente auch über „$pull“ löschen

$collect->insertOne([
    '_id' => 1,
    'name' => 'gwx', 
    'age' => 30, 
    'fruits' => ['apple', 'pear']
]);

$update = [
    '$addToSet' => [
        'fruits' => 'apple'
    ]
];
Nach dem Login kopieren

Im Array sind alle Apple-Elemente gelöscht

upsertupsert ist ein spezielles Update. Wenn jedoch ein Satz gefunden wird, der die Bedingungen erfüllt, ist er mit der vorherigen Änderung identisch. Wenn keine Sammlung gefunden wird, die die Bedingungen erfüllt, wird sie unter Verwendung der Abfragebedingungen und des geänderten Dokuments als neues Dokument in die Sammlung eingefügt.

Im Folgenden nehmen wir als Beispiel ein Szenario, das uns oft begegnet: die Aufzeichnung der Häufigkeit, mit der jede IP aufgerufen wird. Wenn es sich um eine neue IP handelt, wird sie der Sammlung hinzugefügt. Wenn sie bereits vorhanden ist, wird die ursprüngliche Sammlung geändert.

$update = [
    '$addToSet' => [
        'fruits' => [
            '$each' => ['apple', 'banana', 'orange']
        ]
    ]
];
$collect->updateOne(['_id' => 1], $update);
Nach dem Login kopieren
$collect->insertOne([
    '_id' => 1,
    'name' => 'gwx', 
    'age' => 30, 
    'fruits' => ['apple', 'pear']
]);

#从数组末删除1个元素
$update = [
    '$pop' => [
        'fruits' => 1
    ]
];
$collect->updateOne(['_id' => 1], $update);

# 从数组头删除一个元素
$update = [
    '$pop' => [
        'fruits' => -1
    ]
];
$collect->updateOne(['_id' => 1], $update);
Nach dem Login kopieren

Mehrere Dokumente aktualisieren

Das Aktualisieren mehrerer Dokumente erfordert die updateMany()-Methode. Die Demonstration ist wie folgt:

$collect->insertOne([
    '_id' => 1,
    'name' => 'gwx', 
    'age' => 30, 
    'fruits' => ['apple', 'pear', 'apple', 'banana', 'orange']
]);

#从数组末删除
$update = [
    '$pull' => [
        'fruits' => 'apple'
    ]
];
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAktualisierung des MongoDB-Dokuments (PHP-Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was tun, wenn Navicat abläuft? Was tun, wenn Navicat abläuft? Apr 23, 2024 pm 12:12 PM

Zu den Lösungen zur Behebung von Navicat-Ablaufproblemen gehören: Erneuern der Lizenz; Deaktivieren der automatischen Updates; Wenden Sie sich an den Navicat-Kundendienst.

So verbinden Sie Navicat mit Mongodb So verbinden Sie Navicat mit Mongodb Apr 24, 2024 am 11:27 AM

Um mit Navicat eine Verbindung zu MongoDB herzustellen, müssen Sie: Navicat installieren. Eine MongoDB-Verbindung erstellen: a. Geben Sie den Verbindungsnamen, die Hostadresse und den Port ein. b. Geben Sie die Authentifizierungsinformationen ein (falls erforderlich). Überprüfen Sie die Verbindung Speichern Sie die Verbindung

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

Integration von Java-Funktionen und Datenbanken in serverlose Architektur Integration von Java-Funktionen und Datenbanken in serverlose Architektur Apr 28, 2024 am 08:57 AM

In einer serverlosen Architektur können Java-Funktionen in die Datenbank integriert werden, um auf Daten in der Datenbank zuzugreifen und diese zu bearbeiten. Zu den wichtigsten Schritten gehören: Erstellen von Java-Funktionen, Konfigurieren von Umgebungsvariablen, Bereitstellen von Funktionen und Testen von Funktionen. Durch Befolgen dieser Schritte können Entwickler komplexe Anwendungen erstellen, die nahtlos auf in Datenbanken gespeicherte Daten zugreifen.

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

So verbinden Sie NodeJS mit der Datenbank So verbinden Sie NodeJS mit der Datenbank Apr 21, 2024 am 06:16 AM

Um eine Verbindung zur Datenbank herzustellen, stellt Node.js mehrere Datenbank-Connector-Pakete für MySQL, PostgreSQL, MongoDB und Redis bereit. Die Verbindungsschritte umfassen: 1. Installieren Sie das entsprechende Connector-Paket. 2. Erstellen Sie einen Verbindungspool, um wiederverwendbare Verbindungen aufrechtzuerhalten. 3. Stellen Sie eine Verbindung mit der Datenbank her. Hinweis: Der Vorgang ist asynchron und Fehler müssen behandelt werden, um die Sicherheit zu gewährleisten und die Leistung zu optimieren.

Kann Navicat eine Verbindung zu Mongodb herstellen? Kann Navicat eine Verbindung zu Mongodb herstellen? Apr 23, 2024 pm 05:15 PM

Ja, Navicat kann eine Verbindung zur MongoDB-Datenbank herstellen. Zu den spezifischen Schritten gehören: Öffnen Sie Navicat und erstellen Sie eine neue Verbindung. Wählen Sie den Datenbanktyp MongoDB aus. Geben Sie die MongoDB-Hostadresse, den Port und den Datenbanknamen ein. Geben Sie Ihren MongoDB-Benutzernamen und Ihr Passwort ein (falls erforderlich). Klicken Sie auf die Schaltfläche „Verbinden“.

See all articles