MongoDB的一些CURD操做

  MongoDB的一些增刪改查命令操做:html

  官方文檔參考sql

   https://docs.mongodb.com/manual/reference/method/mongodb

   https://docs.mongodb.com/manual/reference/operator/數據庫

#查看當前mongod下有哪些數據庫:
show dbs

#進入或者建立一個數據庫: use 數據庫名稱
use db_name

#查看當前數據庫下,有哪些集合(表):
show tables
或者
show collections

#建立一個集合,(直接插入一個文檔)
db.集合名稱.insert({a:1})

#更新文檔
db.集合名稱.update(query, update, option)

#刪除文檔
db.集合名稱.remove(query, justone)

#查詢文檔
db.集合名稱.find(query, projection)

#建立索引
db.集合名稱.createIndex(keys, options)

#刪除當前數據庫
db.dropDatabase()

#刪除表
db.集合名稱.drop()

#排序
sort

#查詢時跳過和limit
skip  limit

#經常使用聚合
countgroup、aggregate、mapReduce 等等

 

----------------------------------------------------------數組

幾個例子:spa

增長一條文檔:幾種數據類型的展現code

db.user.insert({
    "userid":1,
    "username":'user1',
    "isDel":false,
    "high":1.80,
    "age":18,
    "fonds":['coding', 'sleeping'],
    "parents":{
        "father":"xx",
        "mother":"yy",
    },
    "date": new Date(),
    "time": new Timestamp(),
});

 ----------------------------------------------------------htm

更新: db.collection.update(query, update, option)對象

第一個參數,query表示條件;blog

第二個參數,update更新,注意$set:{}的用法,更新bson內的數組和對象用法;

第三個參數,option,upsert表示若是query條件沒有就插入一條,multi是否更新多個知足條件的記錄。

db.user.update({"userid":1}, {$set:{
    "isDel": true,
    "parents.mother":"zz",
    "fonds.1":'playing',
}}, {upsert: false, multi: false});

 

因爲mongoDB是靈活的模式,同一個集合下的各個字段可能在一個文檔裏存在,另外一條不存在。

好比要把userid=1的這條文檔的isDel域刪掉,更新語句這樣寫:

第二個參數update,利用了$unset:{}。更多去參考 https://docs.mongodb.com/manual/reference/operator/update/

db.user.update({"userid":1}, {$unset:{
    "isDel": "",
}}, {multi: false});

 ----------------------------------------------------------

刪除操做: db.collection.remove(query, justone)

db.collection.remove({"userid":{$gte:5}}, false) 

該語句表示刪除userid大於等於5的文檔

query是條件,注意$gte這些操做符的寫法

justone表示是否容許刪除多條文檔

-------------------------------------------------------------

查詢操做: db.collection.find(query, projection)

用法更多參考: https://docs.mongodb.com/manual/reference/operator/query/

db.collection.find({ "userid":{ $gt : 1, $lte :5 } }, {"_id":0, "userid":1, "username":1})

該語句表示查找userid大於1小於等於5的文檔,並取出userid和username域,不要_id域(默認會取出該_id字段)

第一個參數query,表示查詢條件;

第二個參數projection,表示取出的映射字段,1爲取出來,0不展現。

----------------------------------------------------------

建立索引: db.collection.createIndex(keys, options)

查看一個集合下的索引:db.collection.getIndexes()

默認建立一個集合時,會生成 _id 的默認索引

db.collection.createIndex({userid:1, cdate:-1}})

建立一個複合索引,userid正序,cdate倒序的索引。

----------------------------------------------------------

其餘經常使用操做, sort、limit、skip、count、group、aggregate、mapReduce。

在官方操做手冊上查看.

再附上一個網友總結的經常使用CURD操做上,mongoDB和sql的對比:

http://www.cnblogs.com/yangxia-test/p/3979981.html

相關文章
相關標籤/搜索