Rumah pangkalan data tutorial mysql mongodb update 数组 操作

mongodb update 数组 操作

Jun 07, 2016 pm 04:37 PM
mongodb update beroperasi tatasusunan artikel

前一篇文章说到了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 }
             );
Salin selepas log masuk

相同功能php代码:

$where = array("score"=>array('$gt'=>70));
$param = array('$set'=>array('grades.$'=>"303"));
$ismore = array("multiple" => true);
$collection->update($where,$param,$ismore);
Salin selepas log masuk

例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" } }
 );
Salin selepas log masuk

相同功能php代码:

$where = array("comments.author"=>"John");
$param = array('$set'=>array('comments.$.author'=>"tank"));
$ismore = array("multiple" => true);
$collection->update($where,$param,$ismore);
Salin selepas log masuk

二,$addToSet 如果数组中没有该数据,向数组中添加数据,如果该数组中有相同数组,不添加

db.test3.insert(
 {"_id" :6, "grades" : [ "aaa", "bbb", "ccc" ]}
 );
db.test3.update( { _id: 6 }, { $addToSet: { grades: "ddd"  } });
Salin selepas log masuk

相同功能php代码:

$where = array("_id"=>6);
$param = array('$addToSet'=>array('grades'=>"eee"));
$collection->update($where,$param);
Salin selepas log masuk

三,$pop删除数组数据

db.test3.update( { _id: 6 }, { $pop: { grades: -1 } }); //从头删除 
db.test3.update( { _id: 6 }, { $pop: { grades: 1 } }); //从尾删除
Salin selepas log masuk

相同功能php代码:

$where = array("_id"=>6);
$param = array('$pop'=>array('grades'=>-1));
$collection->update($where,$param);
Salin selepas log masuk

四,$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 })
Salin selepas log masuk

相同功能php代码:

$where = array("grades"=>"bbb");
$param = array('$pull'=>array('grades'=>"bbb"));
$ismore = array("multiple" => true);
$collection->update($where,$param,$ismore);
Salin selepas log masuk

2,$pullAll

db.students.update( { _id: {$gt:1} },
 { $pullAll: { "grades": [90,92] } } //只支持数组
 );
Salin selepas log masuk

相同功能php代码:

$where = array("grades"=>"ddd");
$param = array('$pullAll'=>array('grades'=>array("ddd","eee")));
$ismore = array("multiple" => true);
$collection->update($where,$param,$ismore);
Salin selepas log masuk

五,$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
                      }
           }
 }
 );
Salin selepas log masuk

相同功能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);
Salin selepas log masuk
mongodb update 数组 操作 前一篇文章说到了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 } } [...]mongodb update 数组 操作
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Gunakan komposer untuk menyelesaikan dilema sistem cadangan: Andres-Montanez/Cadangan-Bundle Gunakan komposer untuk menyelesaikan dilema sistem cadangan: Andres-Montanez/Cadangan-Bundle Apr 18, 2025 am 11:48 AM

Apabila membangunkan laman web e-dagang, saya menghadapi masalah yang sukar: bagaimana menyediakan pengguna dengan cadangan produk yang diperibadikan. Pada mulanya, saya mencuba beberapa algoritma cadangan mudah, tetapi hasilnya tidak sesuai, dan kepuasan pengguna juga terjejas. Untuk meningkatkan ketepatan dan kecekapan sistem cadangan, saya memutuskan untuk menggunakan penyelesaian yang lebih profesional. Akhirnya, saya memasang Andres-Montanez/Cadangan-Bundle melalui komposer, yang bukan sahaja menyelesaikan masalah saya, tetapi juga meningkatkan prestasi sistem cadangan. Anda boleh belajar komposer melalui alamat berikut:

Cara Memilih Pangkalan Data untuk Gitlab di CentOs Cara Memilih Pangkalan Data untuk Gitlab di CentOs Apr 14, 2025 pm 04:48 PM

Panduan Penyebaran Pangkalan Data Gitlab pada sistem CentOS Memilih pangkalan data yang betul adalah langkah utama dalam berjaya menggunakan GitLab. Gitlab serasi dengan pelbagai pangkalan data, termasuk MySQL, PostgreSQL, dan MongoDB. Artikel ini akan menerangkan secara terperinci bagaimana untuk memilih dan mengkonfigurasi pangkalan data ini. Cadangan Pemilihan Pangkalan Data MySQL: Sistem Pengurusan Pangkalan Data Relasi yang digunakan secara meluas (RDBMS), dengan prestasi yang stabil dan sesuai untuk kebanyakan senario penempatan GitLab. PostgreSQL: RDBMS sumber terbuka yang kuat, menyokong pertanyaan kompleks dan ciri -ciri canggih, sesuai untuk mengendalikan set data yang besar. MongoDB: Pangkalan Data NoSQL Popular, Bagus Mengendalikan Laut

Apakah strategi sandaran CentOS MongoDB? Apakah strategi sandaran CentOS MongoDB? Apr 14, 2025 pm 04:51 PM

Penjelasan terperinci mengenai strategi sandaran yang cekap MongoDB di bawah sistem CentOS Artikel ini akan memperkenalkan secara terperinci pelbagai strategi untuk melaksanakan sandaran MongoDB pada sistem CentOS untuk memastikan kesinambungan data dan kesinambungan perniagaan. Kami akan merangkumi sandaran manual, sandaran masa, sandaran skrip automatik, dan kaedah sandaran dalam persekitaran kontena Docker, dan menyediakan amalan terbaik untuk pengurusan fail sandaran. Sandaran Manual: Gunakan perintah Mongodump untuk melakukan sandaran penuh manual, contohnya: Mongodump-Hlocalhost: 27017-U Pengguna-P Password-D Database Data-O/Backup Direktori Perintah ini akan mengeksport data dan metadata pangkalan data yang ditentukan ke direktori sandaran yang ditentukan.

Cara Menyiapkan Pengguna di MongoDB Cara Menyiapkan Pengguna di MongoDB Apr 12, 2025 am 08:51 AM

Untuk menyediakan pengguna MongoDB, ikuti langkah -langkah ini: 1. Sambungkan ke pelayan dan buat pengguna pentadbir. 2. Buat pangkalan data untuk memberikan akses pengguna. 3. Gunakan arahan CreateUser untuk membuat pengguna dan menentukan hak dan hak akses pangkalan data mereka. 4. Gunakan perintah getusers untuk memeriksa pengguna yang dibuat. 5. Secara pilihan menetapkan keizinan lain atau memberi kebenaran kepada pengguna ke koleksi tertentu.

Cara Menyulitkan Data dalam Debian Mongodb Cara Menyulitkan Data dalam Debian Mongodb Apr 12, 2025 pm 08:03 PM

Menyulitkan pangkalan data MongoDB pada sistem Debian memerlukan langkah berikut: Langkah 1: Pasang MongoDB terlebih dahulu, pastikan sistem Debian anda dipasang MongoDB. Jika tidak, sila rujuk kepada dokumen MongoDB rasmi untuk pemasangan: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/step 2: menghasilkan fail kunci penyulitan Buat fail yang mengandungi kunci penyulitan dan tetapkan kebenaran yang betul:

Mongodb vs. Oracle: Memilih pangkalan data yang sesuai untuk keperluan anda Mongodb vs. Oracle: Memilih pangkalan data yang sesuai untuk keperluan anda Apr 22, 2025 am 12:10 AM

MongoDB sesuai untuk data yang tidak berstruktur dan keperluan skalabilitas yang tinggi, sementara Oracle sesuai untuk senario yang memerlukan konsistensi data yang ketat. 1.MongoDB Flexibly menyimpan data dalam struktur yang berbeza, sesuai untuk media sosial dan Internet Perkara. 2. Model data berstruktur Oracle memastikan integriti data dan sesuai untuk urus niaga kewangan. 3.MongoDB skala secara mendatar melalui shards, dan skala Oracle secara menegak melalui RAC. 4.MongoDB mempunyai kos penyelenggaraan yang rendah, sementara Oracle mempunyai kos penyelenggaraan yang tinggi tetapi disokong sepenuhnya.

Apakah alat untuk disambungkan ke mongoDB Apakah alat untuk disambungkan ke mongoDB Apr 12, 2025 am 06:51 AM

Alat utama untuk menyambung ke MongoDB adalah: 1. MongoDB shell, sesuai untuk melihat data dengan cepat dan melakukan operasi mudah; 2. Pemandu bahasa pengaturcaraan (seperti Pymongo, MongoDB Java Driver, MongoDB Node.js Driver), sesuai untuk pembangunan aplikasi, tetapi anda perlu menguasai kaedah penggunaan; 3. Alat GUI (seperti Robo 3T, Kompas) menyediakan antara muka grafik untuk pemula dan tontonan data cepat. Apabila memilih alat, anda perlu mempertimbangkan senario aplikasi dan susunan teknologi, dan memberi perhatian kepada konfigurasi rentetan sambungan, pengurusan kebenaran dan pengoptimuman prestasi, seperti menggunakan kolam dan indeks sambungan.

Cara Memulakan Mongodb Cara Memulakan Mongodb Apr 12, 2025 am 08:39 AM

Untuk memulakan pelayan MongoDB: Pada sistem UNIX, jalankan perintah Mongod. Pada tingkap, jalankan perintah mongod.exe. Pilihan: Tetapkan konfigurasi menggunakan pilihan - - - - - -Auth, atau --replset pilihan. Gunakan arahan Mongo untuk mengesahkan bahawa sambungan berjaya.

See all articles