mongodb update 数组 操作
前一篇文章说到了mongodb update 的字符操作,下面说一下mongodb update的数组操作,用的版本是mongodb2.6.3。 一,$美元符号,在update中,可理解为数组下标 例1 db.students.insert( //插入测试数据 [ {"_id" :6, "grades" : [ 80, 85, 90 ],"score":[10,4
前一篇文章说到了mongodb update 的字符操作,下面说一下mongodb update的数组操作,用的版本是mongodb2.6.3。
一,$美元符号,在update中,可理解为数组下标
例1
db.students.insert( //插入测试数据 [ {"_id" :6, "grades" : [ 80, 85, 90 ],"score":[10,40,54]}, {"_id" :7, "grades" : [ 88, 90, 92 ],"score":[100,30,51]} ] ); //把满足score大于90的grades,数组的第一个元素设置成88 db.students.update( { score: {$gt:90} }, { $set: { "grades.$" : 88 } } , { multi:true } );
相同功能php代码:
$where = array("score"=>array('$gt'=>70)); $param = array('$set'=>array('grades.$'=>"303")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
例2
db.test2.insert( { "content" : "this is a blog post.", "comments" : [ { "author" : "Mike", "comment" : "I think that blah blah blah...", }, { "author" : "John", "comment" : "I disagree." } ] } ); //查找名为Mike的记录,并且该人的名字改成tank db.test2.update( { "comments.author": "Mike"}, { $set: { "comments.$.author" : "tank" } } );
相同功能php代码:
$where = array("comments.author"=>"John"); $param = array('$set'=>array('comments.$.author'=>"tank")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
二,$addToSet 如果数组中没有该数据,向数组中添加数据,如果该数组中有相同数组,不添加
db.test3.insert( {"_id" :6, "grades" : [ "aaa", "bbb", "ccc" ]} ); db.test3.update( { _id: 6 }, { $addToSet: { grades: "ddd" } });
相同功能php代码:
$where = array("_id"=>6); $param = array('$addToSet'=>array('grades'=>"eee")); $collection->update($where,$param);
三,$pop删除数组数据
db.test3.update( { _id: 6 }, { $pop: { grades: -1 } }); //从头删除 db.test3.update( { _id: 6 }, { $pop: { grades: 1 } }); //从尾删除
相同功能php代码:
$where = array("_id"=>6); $param = array('$pop'=>array('grades'=>-1)); $collection->update($where,$param);
四,$pull和$pullAll删除指定数据
1,$pull
> db.test3.find(); { "_id" : 6, "grades" : [ "ccc", "ddd" ] } { "_id" : 7, "grades" : [ "aaa", "bbb", "ccc" ] } { "_id" : 8, "grades" : [ "aaa", "bbb", "ccc", "ddd", "eee" ] } > db.test3.update( { grades: "aaa" }, { $pull: { grades: "aaa" } }, //支持这种查找或匹配 $pull: { votes: { $gte: 6 } } { multi: true } ); WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
相同功能php代码:
$where = array("grades"=>"bbb"); $param = array('$pull'=>array('grades'=>"bbb")); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
2,$pullAll
db.students.update( { _id: {$gt:1} }, { $pullAll: { "grades": [90,92] } } //只支持数组 );
相同功能php代码:
$where = array("grades"=>"ddd"); $param = array('$pullAll'=>array('grades'=>array("ddd","eee"))); $ismore = array("multiple" => true); $collection->update($where,$param,$ismore);
五,$push,$each,$sort,$slice,$position
1,各元素解释
$push 向数组中添加元素
$each 循环数据
$sort 对数组进行排序
$slice 对整个collection表进行数据裁减,用的时候一定要当心
$position 插入数据的位置。
2,实例
db.test4.insert( { "_id" : 5, "quizzes" : [ { wk: 1, "score" : 10 }, { wk: 2, "score" : 8 }, { wk: 3, "score" : 5 }, { wk: 4, "score" : 6 } ] } ); db.test4.update( { _id: 5 }, { $push: { quizzes: { $each: [ { wk: 5, score: 8 }, { wk: 6, score: 7 }, { wk: 7, score: 6 } ], $sort: { score: -1 }, $slice: 3, $position:2 } } } );
相同功能php代码:
$where = array("_id"=>5); $param = array('$push'=>array('quizzes'=>array('$each'=>array(array("wk"=>9,"score"=>10),array("wk"=>20,"score"=>11)), '$sort'=>array("score"=>-1), '$position'=>2, '$slice'=>3 //用$slice一定要小心,在这里会把整表数据裁减成3条 ) ) ); $collection->update($where,$param);



Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Nach mehreren Vorabversionen stellte das KDE Plasma-Entwicklungsteam am 28. Februar Version 6.0 seiner Desktop-Umgebung für Linux- und BSD-Systeme vor und nutzte dabei erstmals das Qt6-Framework. KDE Plasma 6.1 verfügt jetzt über eine Reihe neuer Funktionen

Das Fitbit Ace LTE wurde im Mai offiziell eingeführt, ist derzeit jedoch nur in den USA erhältlich. Die Smartwatch richtet sich speziell an Kinder, die durch einen aktiveren Lebensstil Belohnungen für Spiele erhalten können, während die Eltern sie jederzeit im Auge behalten können

Inhaltsverzeichnis Astar Dapp Staking-Prinzip Staking-Einnahmen Abbau potenzieller Airdrop-Projekte: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking-Strategie und -Betrieb „AstarDapp Staking“ wurde zu Beginn dieses Jahres auf die V3-Version aktualisiert, und es wurden viele Anpassungen an den Staking-Einnahmen vorgenommen Regeln. Derzeit ist der erste Absteckzyklus beendet und der Unterzyklus „Abstimmung“ des zweiten Absteckzyklus hat gerade erst begonnen. Um die „zusätzlichen Prämien“-Vorteile zu erhalten, müssen Sie diese kritische Phase (voraussichtlich bis zum 26. Juni dauernd, mit weniger als 5 verbleibenden Tagen) bewältigen. Ich werde die Astar-Einnahmen im Detail aufschlüsseln,

Samsung bietet Benutzern der Galaxy Watch die Möglichkeit, über das Betaprogramm der One UI 6 Watch neue Gesundheits- und Schlaf-Tracking-Funktionen kennenzulernen. Dies war zunächst für die Galaxy Watch6 (die unseren Display-Helligkeitstest meisterte) und die Watch6 Classi verfügbar

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

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

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Pinetwork startet Pibank, eine revolutionäre Mobile -Banking -Plattform! PiNetwork today released a major update on Elmahrosa (Face) PIMISRBank, referred to as PiBank, which perfectly integrates traditional banking services with PiNetwork cryptocurrency functions to realize the atomic exchange of fiat currencies and cryptocurrencies (supports the swap between fiat currencies such as the US dollar, euro, and Indonesian rupiah with cryptocurrencies such as PiCoin, USDT, and USDC). Was ist der Charme von Pibank? Lass uns herausfinden! Die Hauptfunktionen von Pibank: One-Stop-Management von Bankkonten und Kryptowährungsvermögen. Unterstützen Sie Echtzeittransaktionen und übernehmen Sie Biospezies
