MongoDB的一些CURD操作

  MongoDB的一些增删改查命令操作:

  官方文档参考

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

   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 等等

 

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

几个例子:

增加一条文档:几种数据类型的展示

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(),
});

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

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

第一个参数,query表示条件;

第二个参数,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

 

posted @ 2017-05-14 14:32  根号五  阅读(387)  评论(0编辑  收藏  举报