關於MongoDb的簡單入門,MongoDb簡單入門

來源:互聯網
上載者:User

關於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});

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.