MongoDB 常规使用

本文详细介绍了MongoDB的基本操作,包括连接数据库、创建和删除数据库及集合、文档插入、更新、删除和查询,以及高级功能如查询操作符、索引、聚合和监控工具。还涵盖了文档之间的关系,如嵌入式和引用式关系。
摘要由CSDN通过智能技术生成
基本操作
简单命令:
        > 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})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值