第三章 MongoDB的增刪改查(2)

2021-10-24 06:04:13 字數 2060 閱讀 2901

本章介紹了mongodb的常用操作,具體包括如下:

1.更新

db.collection.update(query, update, options):修改已經存在的文件,還可以修改指定的字段或者替換整個文件。

語法

db.collection.

update(,

,)

引數

型別說明

query

document

查詢條件

update

document or pipeline

如果是文件則替換;如果是$set修改器更新字段

upsert

boolean

可選。如果為true,匹配則更新,否則插入文件。

預設值false。

multi

boolean

可選。如果為true,更新匹配多個文件。

如果為false,更新一條文件。

預設值false。

arrayfilters

array

可選。陣列篩選,根據篩選條件,篩選出要更新的陣列元素。

example

文件替換:文件替換是最簡單的更新,用新文件去替換舊的文件,比較適合於大規模資料遷移。

db.user.

remove()

db.user.

insertmany([

,])-- 這裡把_id為1的文件替換成_id為3的文件

db.user.

update(,

)

部分字段更新:使用更新修改器來更新部分字段,而不是替換文件。

db.user.

remove()

db.user.

insertmany([

,])-- 使用$set修改欄位時,不存在則建立;存在就更新

db.user.

update(,

})

更多修改器使用方法參考:mongodb官網

陣列修改:修改文件的陣列欄位時,需要使用$push修改器。如果陣列不存在,則會建立陣列;如果陣列存在,則向陣列追加元素。

db.books.

remove()

db.books.

insertmany([

,])db.books.

update(,

},),

刪除字段:移除字段

db.books.

update(,

},),

陣列過濾器:我們可以為陣列指定乙個識別符號,然後根據識別符號去更新陣列中的符合條件的元素。

乙個陣列識別符號只能標識乙個陣列。

-- 篩選出陣列x下的x.a>

85 or x.b >

80的文件

arrayfilters:[}

,}]}

]-- 這是不合法的,同乙個陣列有兩個識別符號

arrayfilters:[}

,}]-- 這是合法的,兩個不同的陣列有不同陣列識別符號

arrayfilters:[}

,}]

db.students2.

insertmany([

,,]}

,,]}

])db.students2.

update(,

},}]

})

upsert:匹配則更新,否則插入一條文件。建立新文件的字段來自query和update裡。

db.books.

update

(,,)

-- 沒有這條記錄時

db.books.

update(,

},)

關於upsert的操作,官網講得很詳細。傳送門

第三章 MongoDB的增刪改查(1)

本章介紹了mongodb的常用操作,具體包括如下 1.插入文件 如果插入文件沒有指明 id欄位,mongodb會自動增加 id。db.collection.insert 插入一條或多條文件 語法db.collection.insert 引數 型別說明 document document or arr...

MongoDB 三 增刪改查

2,查詢也是一樣,看一下知識點的彙總,其實用幾個,還是有規律的,比較容易記錄的 3,看一下固定集合 顧名思義是有著固定大小的集合,其優點是效能比較出色,以 lru least recently used 最近最少使用 規則和插入順序進行 age out 老化移出 處理。由於集合空間大小一定,當空間用...

C Primer Plus 第三章查缺補漏

最近發現自己有些c語言基礎還是有些不牢固,基礎是很重要的。雖然學過c語言,但是真的功力不夠。而這本書之前打算讀卻因為各種原因擱置了,現在重新拾起希望能夠提公升自己的c語言功底。從第三章資料型別開始讀起,並採用全新的學習方法,因為會點c語言,本著高效學習的原則,打算讀書把不熟悉的部分挑出整理並記住運用...