本章介紹了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語言,本著高效學習的原則,打算讀書把不熟悉的部分挑出整理並記住運用...