目录
1、数据库语法:
(1)查看所有数据库:
(2)查看所有集合列表:
(3)查看当前数据库:
(4)查看当前数据库中所有用户列表:
(5)查看system.profile中时间超过1ms条目:
(6)切换当前数据库:
(7)退出mongodb shell:
(8)创建数据库:
(9)删除数据库:
(10)创建集合:
(11)查看所有集合:
(12)重名令集合:
(13)删除集合:
(14)创建索引:
(15)查看索引:
(16)删除指定索引:
(17)删除所有索引:
2、数据语法:
(1)集合中插入文档:
(2)修改集合中文档:
(3)删除集合中带条件文档:
(4)查看显示集合中某些字段:
(5)查看集合中所有文档:
(6)查看结合中第一条文档:
(7)查询集合中文档数量:
(8)单个条件查询:
(9)AND条件查询:
(10)OR条件查询:
(11)AND与OR条件查询:
(12)IN条件查询:
(13)NOT IN条件查询:
(14)排序查询:
(15)LIKE全模糊查询:
(16)LIKE左模糊查询:
(17)LIKE右模糊查询:
(18)LIMIT分页查询:
(19)分组统计查询:
(20)Mongodb与RDBMS中where对比:
(21)查看某列去重后数据:
(22)删除集合中所有数据:
(23)查看数据状态:
(24)查看集合中数据的原始大小:
(25)查看集合中索引数据的原始大小:
(26)查看集合中索引+数据压缩后大小:
(27)查看集合中数据压缩后大小:
(28)数据显示更美观pretty():
命令:show dbs
命令:show collections
命令:db
命令:show users
命令:show profile
命令:use dbName
命令:exit
use clsn;
说明:当use的时候,系统就会自动创建一个数据库。如果use之后没有创建任何集合。系统就会删除这个数据库。
切换到数据库:
use clsn;
删除数据库:
db.dropDatabase();
说明:如果没有选择任何数据库,会删除默认的test数据库。
db.createCollection('a');
show collections;
db.c.renameCollection("clsn");
db.a.drop();
db.col.createIndex({"title":1});
db.col.getIndexes();
db.col.dropIndex("索引名称");
db.col.dropIndexes();
说明:以下语法中以db开头的,表示要使用use database;切换到要操作的数据库,然后进行的该操作。
db.c.insert({name:'clsn'});
语法:
db.collection.update(
{
upsert:
multi:
writeConcern:
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
实例:
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}});
语法:
db.collection.remove(
{
justOne:
writeConcern:
}
)
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
实例:
db.col.remove({'title':'MongoDB 教程'});
语法:
db.collection.find(query, projection)
参数说明:
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
实例:
db.test.find({item:"postcard"},{status:1})
会返回两个字段:_id,status。其中_id字段是默认返回。
将projection中返回的字段指定为1,就可以实现返回指定的字段。
db.col.find();
db.col.findOne();
db.log.count();
db.col.find({"by":"菜鸟教程"});
db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"});
语法:
db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
)
实例:
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]})
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]});
db.getCollection("A表").find({ id:{ $in:[1,2]}});
db.getCollection("A表").find({ id:{ $nin:[1,2]}});
db.getCollection("A表").sort({phone:1});
db.getCollection("A表").find({user_name:/san/});
db.getCollection("A表").find({user_name:/san$/});
db.getCollection("A表").find({user_name:/^liu/});
第一页:
db.test.find().limit(2);
第二页:
db.test.find().skip(2).limit(2);
db.test.aggregate([{$group:{_id:{pwd:$pwd},total_count:{$sum:1}}}]);
说明:
_id是必须的,该值为group by的分组字段;
total_count等字段为group by分组后,进行的各种函数计算后的结果字段,后面可以添加多个字段也。
操作 |
格式 |
范例 |
RDBMS中的类似语句 |
等于 |
{ |
db.col.find({"by":"菜鸟教程"}).pretty() |
where by = '菜鸟教程' |
小于 |
{ |
db.col.find({"likes":{$lt:50}}).pretty() |
where likes < 50 |
小于或等于 |
{ |
db.col.find({"likes":{$lte:50}}).pretty() |
where likes <= 50 |
大于 |
{ |
db.col.find({"likes":{$gt:50}}).pretty() |
where likes > 50 |
大于或等于 |
{ |
db.col.find({"likes":{$gte:50}}).pretty() |
where likes >= 50 |
不等于 |
{ |
db.col.find({"likes":{$ne:50}}).pretty() |
where likes != 50 |
db.log.distinct("name");
db.col.remove({});
db.log.stats();
db.log.dataSize();
db.log.totalIndexSize();
db.log.totalSize();
db.log.storageSize();
以易读的方式来读取数据,可以使用 pretty() 方法:
db.col.find().pretty();