最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB使用$addToSet向數(shù)組中添加元素的操作代碼

 更新時(shí)間:2024年06月16日 10:36:32   作者:威贊  
使用方法$addToSet, 向數(shù)組中添加不存在的元素,如果元素已經(jīng)存在于目標(biāo)數(shù)組當(dāng)中,則使用$addToSet不會(huì)更新當(dāng)前文檔,本文給大家介紹了MongoDB使用$addToSet向數(shù)組中添加元素的操作代碼,感興趣的小伙伴跟著小編一起來看看吧

定義

使用方法$addToSet, 向數(shù)組中添加不存在的元素。如果元素已經(jīng)存在于目標(biāo)數(shù)組當(dāng)中,則使用$addToSet不會(huì)更新當(dāng)前文檔。

語法

按照下面的形式使用$addToSet操作符。

{$addToSet: {<field1>: <value1>, ...}}

當(dāng)向嵌入文檔或數(shù)組中添加元素時(shí),使用點(diǎn)操作符。

行為

  • 自mongodb5.0開始,UPDATE操作按照字段名稱的字典順序更新字段。當(dāng)字段中包含數(shù)字時(shí),按照數(shù)字順序依次更新字段。當(dāng)然,對(duì)一個(gè)文檔的多個(gè)字段操作,是原子性的。
  • $addToSet只能保證不會(huì)向數(shù)組當(dāng)中插入已經(jīng)存在的數(shù)據(jù)。而不會(huì)對(duì)數(shù)組中已經(jīng)存在的重復(fù)元素產(chǎn)生影響。也不會(huì)對(duì)數(shù)組中元素的順序產(chǎn)生影響。
  • mongodb 5.0版本以后,向$addToSet傳入空表達(dá)式({ })時(shí),mongodb不再拋出錯(cuò)誤??毡磉_(dá)式不會(huì)修改字段值 ,也不會(huì)在oplog中,添加新的操作記錄。
  • 使用$addToSet向不存在的數(shù)組字段添加數(shù)組元素時(shí),mongodb會(huì)創(chuàng)建該字段并將元素插入到該字段當(dāng)中。
  • 不可以向非數(shù)組字段插入元素,否則會(huì)報(bào)錯(cuò)。
  • 向數(shù)組字段插入的是一個(gè)數(shù)組時(shí),$addToSet方法將指定的數(shù)組作為一個(gè)元素插入到數(shù)組當(dāng)中。
  • 向數(shù)組字段插入文檔時(shí),mongodb會(huì)判斷即將插入的文檔與數(shù)組當(dāng)中已有的元素是否嚴(yán)格相等。包括字段名稱,字段值,字段順序等。

應(yīng)用

向非數(shù)組字段插入數(shù)據(jù)報(bào)錯(cuò)

創(chuàng)建pigments集合并插入數(shù)據(jù)

db.pigments.insertOne({_id: 1, colors: "blue, green, red"})

使用$addToSet向colors字段插入數(shù)組元素

db.pigments.updateOne({_id:1}, {$addToSet: {"colors": "mauve"}})
WriteError({
	"index" : 0,
	"code" : 2,
	"errmsg" : "Cannot apply $addToSet to non-array field. Field named 'colors' has non-array type string",
	"op" : {
		"q" : {
			"_id" : 1
		},
		"u" : {
			"$addToSet" : {
				"colors" : "mauve"
			}
		},
		"multi" : false,
		"upsert" : false
	}
})

向數(shù)組字段插入數(shù)組

創(chuàng)建集合alphabet

db.alphabet.insertOne({_id: 1, letters: ["a", "b"]})

向letters字段,插入數(shù)組["c", "d"]

db.alphabet.updateOne({_id: 1}, {$addToSet:{"letters": ["c", "d"]}})

查看插入結(jié)果

db.alphabet.find()
{
	"_id" : 1,
	"letters" : [
		"a",
		"b",
		[ "c", "d" ] 
	]
}

將數(shù)組作為一個(gè)整體插入到數(shù)組letters中。若期望將數(shù)組["c", "d"]的每一個(gè)元素插入字段letters中,使用$each操作符。

db.alphabet.updateOne({_id:1}, {$addToSet: {"letters":{$each: ["c", "d"]}}})

向數(shù)組字段中插入數(shù)據(jù)

創(chuàng)建集合inventory并插入數(shù)據(jù)

db.inventory.insertOne(
    {_id:1, item: "polarizing_filter", tags: ["electronics", "camera"]}
    )

向字段tags插入元素

db.inventory.updateOne(
    {_id:1},
    {$addToSet: {tags: "accessories"}}
    )

查詢插入結(jié)果

向數(shù)組中插入已存在的元素

db.inventory.updateOne(
    {_id:1},
    {$addToSet: {tags: "camera"}}
    )

因?yàn)?quot;camera"已經(jīng)存在于數(shù)組tags當(dāng)中,所以沒有數(shù)據(jù)更新。

{
	"acknowledged" : true,
	"matchedCount" : 1,
	"modifiedCount" : 0
}

以上就是MongoDB使用$addToSet向數(shù)組中添加元素的操作代碼的詳細(xì)內(nèi)容,更多關(guān)于MongoDB $addToSet添加元素的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MongoDB與MySQL的操作對(duì)比表及區(qū)別介紹

    MongoDB與MySQL的操作對(duì)比表及區(qū)別介紹

    這篇文章主要介紹了MongoDB與MySQL的操作對(duì)比表及區(qū)別介紹,本文著重講解了Mongodb與Mysql的操作命令的對(duì)比,需要的朋友可以參考下
    2015-05-05
  • MongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 在MongoDB中使用多文檔事務(wù)的詳細(xì)步驟

    在MongoDB中使用多文檔事務(wù)的詳細(xì)步驟

    在MongoDB中使用多文檔事務(wù),確保多個(gè)操作要么全部成功要么全部失敗,實(shí)現(xiàn)數(shù)據(jù)一致性,通過會(huì)話和TransactionOptions配置事務(wù),執(zhí)行跨集合寫操作,并提交或回滾事務(wù),適用于需要確保數(shù)據(jù)一致性的復(fù)雜應(yīng)用場(chǎng)景,本文介紹在MongoDB中使用多文檔事務(wù)的步驟,感興趣的朋友一起看看吧
    2026-04-04
  • MongoDB中自動(dòng)增長(zhǎng)ID詳解(實(shí)現(xiàn)、應(yīng)用及優(yōu)化)

    MongoDB中自動(dòng)增長(zhǎng)ID詳解(實(shí)現(xiàn)、應(yīng)用及優(yōu)化)

    在MongoDB中,自動(dòng)增長(zhǎng)的功能主要通過使用數(shù)據(jù)庫的ObjectId或自定義的序列來實(shí)現(xiàn),ObjectId是MongoDB默認(rèn)的主鍵類型,它是唯一的并且具有一定的排序特性,本文給大家介紹了MongoDB中自動(dòng)增長(zhǎng)ID,需要的朋友可以參考下
    2024-06-06
  • MongoDB簡(jiǎn)介 MongoDB五大特色

    MongoDB簡(jiǎn)介 MongoDB五大特色

    這篇文章主要介紹了MongoDB簡(jiǎn)介,MongoDB五大特色,本文講解了豐富的數(shù)據(jù)模型、容易擴(kuò)展、豐富的功能、高性能、簡(jiǎn)便的管理等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • MongoDB基礎(chǔ)之文檔操作

    MongoDB基礎(chǔ)之文檔操作

    這篇文章介紹了MongoDB基礎(chǔ)之文檔操作,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • MongoDB模糊查詢操作案例詳解(類關(guān)系型數(shù)據(jù)庫的 like 和 not like)

    MongoDB模糊查詢操作案例詳解(類關(guān)系型數(shù)據(jù)庫的 like 和 not like)

    這篇文章主要介紹了MongoDB的模糊查詢操作(類關(guān)系型數(shù)據(jù)庫的 like 和 not like) ,本文通過代碼案例分析給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,,需要的朋友可以參考下
    2019-07-07
  • MongoDB中的常用操作$set、$unset和$inc示例詳解

    MongoDB中的常用操作$set、$unset和$inc示例詳解

    在MongoDB中,$set操作符用于更新文檔中的字段值,它允許更新指定的字段,而不必更新整個(gè)文檔,這篇文章主要介紹了MongoDB中的常用操作$set、$unset和$inc示例詳解,需要的朋友可以參考下
    2023-12-12
  • MongoDB索引使用詳解

    MongoDB索引使用詳解

    索引,使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),例如 employee 表的姓名(name)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會(huì)幫助您更快地獲得該信息。
    2016-01-01
  • MongoDB基礎(chǔ)之集合操作

    MongoDB基礎(chǔ)之集合操作

    這篇文章介紹了MongoDB基礎(chǔ)之集合操作,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

鲜城| 三台县| 随州市| 喀喇沁旗| 重庆市| 治多县| 新化县| 新建县| 涿鹿县| 赤峰市| 遂平县| 朝阳县| 肥乡县| 靖州| 邻水| 定兴县| 海林市| 新丰县| 蒙城县| 万宁市| 卢氏县| 竹溪县| 汝南县| 吉林省| 扬中市| 永善县| 湖南省| 泸西县| 周宁县| 兴安盟| 泗阳县| 贡觉县| 漳州市| 汪清县| 邯郸县| 溆浦县| 临西县| 宁晋县| 余姚市| 桦甸市| 徐闻县|