Mongodb中使用$each向數(shù)組字段插入多個(gè)元素的操作方法
定義
$each操作符應(yīng)用在UPDATE操作中的$addToSet和$push操作符當(dāng)中。與$addToSet搭配使用時(shí),將數(shù)組中的多個(gè)值插入到數(shù)組字段當(dāng)中。當(dāng)指定插入的元素不存在時(shí),數(shù)據(jù)才插入目標(biāo)數(shù)組。按照下面的形式與$addToSet搭配使用。
{ $addToSet: { <field>}: { $each: [ <value1>, <value2>, ...]}}
與$push操作符搭配使用,將指定數(shù)組中的所有元素插入到目標(biāo)數(shù)組。當(dāng)然,$push與$each操作符混合使用時(shí),還可以搭配$position, $slice, $sort等操作符。$push與$each搭配使用時(shí),按照下面的形式。
{$push: {<field>: {$each: [<value1>, <value2>, ...]}}}
行為
- 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對(duì)一個(gè)文檔的多個(gè)字段操作,是原子性的。
應(yīng)用
搭配使用$each和$push操作符
下面的例子中,將數(shù)組[90, 92, 85]的每一個(gè)元素插入到字段scores當(dāng)中。
db.students.updateOne( {name: "joe"}, {$push: { scores: {$each: [90, 92, 85]}}} )
搭配使用$each和$addToSet操作符
向集合inventory中插入數(shù)據(jù)
db.inventory.insertOne( {_id:2, item: "cable", tags: ["electronics", "supplies"]} )
更新新插入的數(shù)據(jù),向tags數(shù)組中添加多個(gè)元素["camera", "electronics", "accessories"],當(dāng)指定元素在文檔字段tags存在時(shí),則不需要插入。
db.inventory.updateOne( {_id: 2}, {$addToSet: {tags: {$each: ["camera", "electronics", "accessories"]}}} )
查詢更新后的結(jié)果
db.inventory.find({_id: 2}) [ { "_id": 2, "item": "cable", "tags": [ "electronics", "supplies", "camera", "accessories" ] } ]
到此這篇關(guān)于Mongodb中使用$each向數(shù)組字段插入多個(gè)元素的操作方法的文章就介紹到這了,更多相關(guān)Mongodb $each插入元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mongodb?刪除文檔Delete與Remove的區(qū)別解析
這篇文章主要介紹了Mongodb?刪除文檔Delete與Remove的區(qū)別,要從集合中刪除所有文檔,請(qǐng)將空過濾器文檔傳遞{}給該?db.collection.deleteMany()方法,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08MongoDB快速入門筆記(三)之MongoDB插入文檔操作
這篇文章主要介紹了MongoDB快速入門筆記(三)之MongoDB插入文檔操作 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06MongoDB數(shù)據(jù)庫文檔操作方法(必看篇)
下面小編就為大家?guī)硪黄狹ongoDB數(shù)據(jù)庫文檔操作方法(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07mongodb基礎(chǔ)入門_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了mongodb基礎(chǔ)入門的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08