基本操作
简单命令:
> mongo
> db 显示当前数据库对象或集合。
> use todo_db
> show dbs
> show collections 查询当前数据库的所有集合
> db.help
注意:
数据库和集合的名字都是小写的最好
如果集合的名字叫做db-text 则对其操作应该为 db.getCollection(db-text)
--------------------------------------------------------------------------------------------------------------------------------
概念解析
database->collection(集合)->document(文档)->field(域)->index
创建数据库
>mongo
>use test2 解释:有就switch 没有就创建 但必须插入一条语句后才会真正创建
>db.colName.insert({name:"zhumin"}) colName是集合的名字 有就直接插入该文档 没有就创建
删除数据库
>mongo
>db
>db.dropDatabase() 解释:删除当前数据库
删除集合
>db.colName.drop()
文档插入
>mongo
>use test2
>db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库'}) 插入文档
>db.col.find() 查看当前集合的所有文档
更新文档
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{upsert:false,multi:true})
解释:------------------条件---------更新数据(set:有就修改没有创建)----------------没有是否插入--是否更新多条
注意:对于整数、长整数和双精度浮点数 可以使用 $inc:{'age':1} 使age的值加1 作为set语句进去
>db.col.update({'title':'MongoDB 教程'},{'title':'MongoDB'}) 替换掉原来的文档
>db.col.save({"_id" : ObjectId("56064f89ade2f21f36b03136"),"title" : "MongoDB"})
解释:根据ObjectId 替换
删除文档
>db.col.remove({'title':'MongoDB 教程'}) 删除条件为title = 'MongoDB 教程' 删除所有
>db.col.remove({'title':'MongoDB 教程'},1) 删除找到的第一条数据
>db.col.remove({}) 删除所有
查询文档
>db.colName.find().pretty() 以格式化的方式显示集合中所有的文档
>db.colName.find({"name":"菜鸟教程"}).pretty() ========where name = '菜鸟教程'
>db.colName.find({"name":"菜鸟教程", "title":"MongoDB 教程"}).pretty() =====where name = '菜鸟教程' and title = '"MongoDB 教程'
>db.colName.find({$or:[{"name":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty() =====where name = '菜鸟教程' or title = '"MongoDB 教程'
>db.colName.find({"age": {$gt:50}, $or: [{"name": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()====where age>50 and(name='菜鸟教程' or title = 'MongoDB 教程')
>db.colName.find({"age":{$lt:24}}).pretty() ====== where age < 24
lte <= gt > gte >= ne!=
高级操作
集合-个数
>db.colName.help()
>db.colName.count()
$type 操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果
>db.todo.find({"title" : {$type : 2}})
Double--1 String--2 Object--3 Array--4 Object id--7 Boolean--8 Date--9 Null--10 JavaScript--13
Limit与Skip方法
>db.todo.find({"title":1}).limit(2) 取出查询结果的2条数据
>db.todo.find({"title":1}).limit(2).skip(1) 查出的结果中跳过
排序sort()方法
>db.todo.find({"title" : {$type : 2}}).sort({"title":-1})
解释:使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
索引
索引是对数据库表中一列或多列的值进行排序的一种结构
>db.todo.ensureIndex({"title":1}) 创建索引 1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可
>db.todo.ensureIndex({"title":1,"description":-1})
聚合(aggregate)
用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果
>db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
==select by_user, count(*) from mycol group by by_user
MongoDB 监控
mongostat和mongotop两个命令来监控MongoDB的运行情况
mongostat:会间隔固定时间获取mongodb的当前运行状态,并输出 ..>mongostat
mongotop:用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据 ..>mongotop [10] 10可选项 10s 间隔时间 默认为1s
文档之间的关系
嵌入式关系
引用式关系
>var result = db.user.findOne({"name":"Tom Hanks"},{"address_ids":1})
>db.address.find({"_id":{"$in":result["address_ids"]}})
MongoDB的shell内置javascript引擎可以直接执行js代码
>function insert(object){db.colName.insert(object)}
>insert({age:32})
MongoDB 常规使用
最新推荐文章于 2024-11-13 17:39:57 发布
本文详细介绍了MongoDB的基本操作,包括连接数据库、创建和删除数据库及集合、文档插入、更新、删除和查询,以及高级功能如查询操作符、索引、聚合和监控工具。还涵盖了文档之间的关系,如嵌入式和引用式关系。
摘要由CSDN通过智能技术生成