最近在學習MongoDB,小結一下,主要都是一些基礎知識,需要的朋友可以參考下
1、配置:mongod --dbpath=D:/MongoDB/data
mongo
2、基本的增刪查改
find() update()-- 整體更新,局部更新。
修改器: $inc db.person.update({"age":23},{$inc:{"salary":1000}})
第一個參數為條件。第二個參數為修改的值,但值必須為整數。($inc allowed for numbers only)
$set 修改器: db.person.update({"name":"gll"},{$set:{"age":25}}}
還有一種操作為修改或添加操作:這里可以叫insertOrUpdate操作。
只要將update的第三個參數設為true即可。如果沒有查到,就在數據庫里新增一條,避免數據庫里判斷是update還是add操作。使用簡單。
批量更新:
如果匹配多條的話, 默認的情況下只更新第一條。如果需要多條更新的話,在update的第四個參數中設為true即可。也很簡單。
Remove 操作。
3、高級操作
聚合:
count() distinct() 選擇了哪個屬性,哪個就不能重復。
group() 參數 key : 指定文檔分組的依據,所有的age鍵的值劃分到一組,true為返回鍵age的值。
initial: "initial":{"person":[]} 每一組reduce函數調用的初始個數,第一組的所有成員都會使用這個累加器。
說白了。這個就是個初始值。每次$reduce 都會調用這個值進行值的改變。
例子:
- db.person.group({
- . "key":{"age":true},
- . "initial":{"person":[]},
- . "$reduce":function(cur,prev){ 第一個參數為當前文檔,第二個參數為累加器文檔
- . prev.person.push(cur.name);
- . }
- . })
- eg : db.person.group({
- "key": {
- "age": true
- },
- "initial": {
- "person": [
- ]
- },
- "$reduce": function(doc,out){
- out.person.push(doc.name);
- },
- "finalize": function(out){
- out.count=out.person.length;
- },
- "condition": {
- "age": {
- $lt: 25
- }
- }
新聞熱點
疑難解答