關於MongoDb的簡單入門,MongoDb簡單入門
在下載完成mongodb後,要在環境變數中加入 "目錄\mongodb\bin"
開啟cmd視窗
--開啟mongodb服務
mongod -dbpath "D:\mongodb\db"
--註冊服務
mongod -dbpath "D:\mongodb\db" -logpath "D:\mongodb\log\mongodb.log" -install -serviceName "MongoDB"
--啟動服務
net start MongoDB;
--查看協助
db.help();
--建立庫(庫名為:zyh)
use zyh;
--查看當前庫下的集合
show collections;
mongodb中沒有表 只有集合
--建立集合
1.直接向集合中添加資料,如果該集合不存在,則會自動建立 (集合名為:yc)
db.yc.insert({"_id":1001,"name":"yc"});
此時使用命令show collections會發現有兩個集合:
system.indexes; 索引集合
yc;
2.db.createCollection("navy");
--刪除集合
db.yc.drop();
--刪除記錄(文檔)
db.collection_name.remove({條件});
db.yc.remove({"_id":{"$ne":1001}}); //$ne:不等於 $lt:小於 $gt:大於 $lte:小於等於 $gte:大於等於
--向集合中添加多條記錄
db.yc.insert([{"_id":1002,"name":"天天","sex":"男"},{"_id":1003,"name":"噹噹","sex":"女"}]);
--查看集合中的資料(.limit為分頁)
db.yc.find();
資料類型:
null: {"x":null}
boolean: {"x":true}
數值: {"x":3.14} {"x":3} NumberInt("3") NumberLong("3")
字串: {"x":"hello"}
日期: {"x":new Date()}
Regex: {"x":/hello/ig}
數組:{"x":[1,2,3]}
內嵌文檔:{"x":{"foo":{bar}}}
對象id:{"x":ObjectId()}
二進位:
代碼:{"x":function(){}}
--如果存在,則修改,如果不存在,則添加。
db.yc.save({"_id":1004,"name":"navy1"});
--修改
db.yc.update({條件},{要修改的資料});
db.yc.update({"_id":1002},{"name":"scott1","sex":"F"})
db.yc.insert({"_id":1001,"url":"www.hyycinfo.com","pageViews":1});
db.yc.insert({"_id":1002,"company":"yc","url":"www.hyycinfo.com","pageViews":1});
--修改器
$inc 增加對應的值
db.yc.update({"_id":1001},{"$inc":{"pageViews":1}}); --將_id為1001的文檔中的pageViews鍵的值增加1
$set
db.yc.update({"_id":1002},{"name":"scott1","sex":"F"})
db.yc.update({"_id":1002},{"$set":{"name":"scott1","sex":"F"}})
--將company變成一個數組
db.yc.update({"_id":1002},{"$set":{"company":["yc","nh","navy"]}})
--刪除鍵
db.yc.update({"_id":1002},{"$unset":{"company":1}}) --刪除記錄1002中的company鍵
--數組修改器
$push 向數組中添加值,可能會出現重複的值
db.yc.update({"_id":1002},{"$push":{"company":"sc"}});
$each
db.yc.update({"_id":1002},{"$push":{"company":{"$each":["hg","rc","jm"]}}});
$slice 指定最大的長度,它的值必須是負數,表示保留最後的n個值
db.yc.update({"_id":1002},{"$push":{"company":{"$each":["yc1","yc2","yc"],"$slice":-10}}});
$pop 從數組中刪除一個元素 key:1 從資料的末尾開始 key:-1從頭部開始
db.yc.update({"_id":1002},{"$pop":{"company":1}})
$pull從數組中刪除匹配的值
db.yc.update({"_id":1002},{"$pull":{"company":"sc"}})
db.yc.insert({
"_id":1005,
"content":"今天吃的怎麼樣?",
"comments":[
{"comment":"好","count":0},
{"comment":"很好","count":0},
{"comment":"非常好","count":0}
]
})
--通過數組下標訪問
db.yc.update({"_id":1004},{"$inc":{"comments.1.count":1}});
db.yc.update({"comments.comment":"好"},{"$inc":{"comments.$.count":1}})
db.yc.update({"comments.comment":"很好"},{"$set":{"comments.$.comment":"很很好"}})
--MongoDB預設每次只修改一個文檔,如果需要修改所有滿足條件的記錄,則需在後面添加條件{multi:true}
db.yc.update({"comments.comment":"好"},{"$inc":{"comments.$.count":1}},{multi:true})
db.yc.update({"comments.comment":"好"},{"$inc":{"comments.$.count":1}},false,true)
--刪除
db.yc.remove({條件});
--查詢
db.yc.find(); --查詢所有記錄
db.yc.findOne(); --查詢第一條記錄
db.yc.find({"_id":1001}); --where key=val
db.yc.find({"_id":{"$gt":1001}}); --where key>val
--$in 表示在某個值內
db.yc.find({"_id":{"$in":[1001,1002,1003]}});
--$or 或
db.yc.find({"$or":[{"_id":1001},{"name":"zyh"}]});
--and or
db.yc.find({"sex":"男","$or":[{"_id":1001},{"name":"zyh"}]});
--------------------------------------------------------------------------
for(i=0;i<10;i++){
db.yc.insert({"x":i});
}
var cursor=db.yc.find();
var obj:
while(cursor.hasNext()){
obj=cursor.next();
print(obj);
}
var cursor=db.yc.find();
cursor.forEach(function(x){
print(x);
});
--分頁查詢
db.yc.find().limit(3); --前三條
db.yc.find().limit(3).skip(3); --跳過前三條,查接下來三條
--排序
db.yc.find().sort({"_id":-1}); --1為升序 -1為降序
db.yc.find().sort({"_id":-1,"name":1});
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。