Mongodb中使用$each向數(shù)組字段插入多個元素的操作方法
定義
$each操作符應用在UPDATE操作中的$addToSet和$push操作符當中。與$addToSet搭配使用時,將數(shù)組中的多個值插入到數(shù)組字段當中。當指定插入的元素不存在時,數(shù)據(jù)才插入目標數(shù)組。按照下面的形式與$addToSet搭配使用。
{ $addToSet: { <field>}: { $each: [ <value1>, <value2>, ...]}}與$push操作符搭配使用,將指定數(shù)組中的所有元素插入到目標數(shù)組。當然,$push與$each操作符混合使用時,還可以搭配$position, $slice, $sort等操作符。$push與$each搭配使用時,按照下面的形式。
{$push: {<field>: {$each: [<value1>, <value2>, ...]}}}行為
- 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當字段中包含數(shù)字時,按照數(shù)字順序依次更新字段。當然,對一個文檔的多個字段操作,是原子性的。
應用
搭配使用$each和$push操作符
下面的例子中,將數(shù)組[90, 92, 85]的每一個元素插入到字段scores當中。
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ù)組中添加多個元素["camera", "electronics", "accessories"],當指定元素在文檔字段tags存在時,則不需要插入。
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ù)組字段插入多個元素的操作方法的文章就介紹到這了,更多相關(guān)Mongodb $each插入元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB系列教程(六):java操作mongodb實例
這篇文章主要介紹了MongoDB系列教程(六):java操作mongodb實例,本文講解了java中操作mongodb數(shù)據(jù)增加、刪除、修改、查詢數(shù)據(jù)等代碼實例,需要的朋友可以參考下2015-05-05
關(guān)于CentOS 8 搭建MongoDB4.4分片集群的問題
在MongoDB里面存在另一種集群,就是分片技術(shù),可以滿足MongoDB數(shù)據(jù)量大量增長的需求。這篇文章主要介紹了CentOS 8 搭建MongoDB4.4分片集群的問題,需要的朋友可以參考下2021-10-10
Windows系統(tǒng)下安裝MongoDB與Robomongo環(huán)境詳解
這篇文章主要給大家介紹了在Windows系統(tǒng)下安裝MongoDB與Robomongo環(huán)境的相關(guān)資料,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04
MongoDB通過查詢與游標徹底玩轉(zhuǎn)分布式文件存儲
MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標,徹底玩轉(zhuǎn)分布式文件存儲,需要的朋友可以參考下2023-01-01

