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 #常用聚合 count、group、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的对比: