mongodb常用命令

上传人:碎****木 文档编号:220861772 上传时间:2021-12-09 格式:DOCX 页数:11 大小:23.88KB
返回 下载 相关 举报
mongodb常用命令_第1页
第1页 / 共11页
mongodb常用命令_第2页
第2页 / 共11页
mongodb常用命令_第3页
第3页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《mongodb常用命令》由会员分享,可在线阅读,更多相关《mongodb常用命令(11页珍藏版)》请在金锄头文库上搜索。

1、mongodb 常用命令mongodb 由 C写就,其名字来自 humongous这个单词的中间局部,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。MongoDB 的主要目标是在键/值存储方式供给了高性能和高度伸缩性以及传统的 RDBMS系统丰富的功能架起一座桥梁,集两者的优势于一身。一个 mongod效劳可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫 collection,每个 collection

2、可以存放多个文档document,每个文档都以 BSONbinary json的形式存放于硬盘中,因此可以存储比较简单的数据类型。它是以单文档为单位存 储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文 档造成影响,这就是所谓的 schema-free,这也是文档型数据库最主要的优点。跟一般的key-value 数据库不一样的是,它的 value中存储了构造信息,所以你又可以像关系型数据库那样对某些域进展读写、统计等操作。Mongo 最大的特点是他支持的查询语言格外强大, 其语法有点类似于面对对象的查询语言,几乎可以实现类似关系数据库 单表查询的绝大局部功能,而且还支持对数据建立索

3、引。Mongo还可以解决海量数据的查询效率,依据官方文档,当数据量到达 50GB以上数据时,Mongo数据库访问速度是 MySQL10 倍以上。BSONBSON 是 Binary JSON 的简称,是一个 JSON 文档对象的二进制编码格式。BSON 同 JSON 一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了 JSON 的数据类型。如:BSON 有 Date 类型和BinDate类型。BSON 被比作二进制的交换格式,如同 Protocol Buffers,但 BSON比它更“schema-less”,格外好的机敏性但空间占用略微大一点。BSON 有以下三个特点:1. 轻量级

4、2. 跨平台3. 效率高命名空间MongoDB存储 BSON 对象到 collections,这一系列的数据库名和collection名被称为一个命名空间。如同:java.util.List;用来治理数据库中的数据。索引mongodb 可以对某个字段建立索引,可以建立组合索引、唯一索引, 也可以删除索引,建立索引就意味着增加空间开销。默认状况下每个表都会有一个唯一索引:_id,假设插入数据时没有指定_id,效劳会自动生成一个_id,为了充分利用已有索引,削减空间开销,最好是自己指定一个 unique的 key 为_id,通常用对象的 ID 比较适宜,比方商品的 ID。shell 操作数据库:一

5、、 超级用户相关:1. 进入数据库 admin use admin2. 增加或修改用户密码db.addUser(”name”,”pwd”)3. 查看用户列表db.system.users.find()4. 用户认证db.auth(”name”,”pwd”)5. 删除用户db.removeUser(”name”)6. 查看全部用户show users7. 查看全部数据库show dbs8. 查看全部的 collection show collections9. 查看各 collection 的状态db.printCollectionStats()10. 查看主从复制状态db.printRepli

6、cationInfo()11. 修复数据库db.repairDatabase()12. 设置记录 profiling,0=off 1=slow 2=all db.setProfilingLevel(1)13. 查看 profiling show profile14. 拷贝数据库db.copyDatabase(”mail_addr”,”mail_addr_tmp”)15. 删除 collection db.mail_addr.drop()16. 删除当前的数据库db.dropDatabase()二、 增删改1. 存储嵌套的对象db.foo.save(”name”:”ysz”,”address”:

7、”city”:”beijing”,”po st”:100096,”phone”:138,139)2. 存储数组对象db.user_addr.save(”Uid”:”yushunzhisohu ”,”Al”:”test-1sohu ”,”test-2sohu ”)3. 依据query 条件修改,假设不存在那么插入,允许修改多条记录db.foo.update(”yy”:5,”$set”:”xx”:2,upsert=true,mult i=true)4. 删除yy=5 的记录db.foo.remove(”yy”:5)5. 删除全部的记录db.foo.remove()三、 索引1. 增加索引:1(as

8、cending),-1(descending) db.foo.ensureIndex(firstname: 1, lastname: 1, unique: true);3. 索引子对象db.user_addr.ensureIndex(”Al.Em”: 1)5. 查看索引信息db.foo.getIndexes()7. db.foo.getIndexKeys()8. 依据索引名删除索引9. db.user_addr.dropIndex(”Al.Em_1”)四、查询1. 查找全部2. db.foo.find()3. 查找一条记录4. db.foo.findOne()5. 依据条件检索 10 条记录6

9、. db.foo.find(”msg”:”Hello 1”).limit(10)7. sort 排序8. db.deliver_status.find(”From”:”ixiguasina ”).sort(”Dt”,-1)9. db.deliver_status.find().sort(”Ct”:-1).limit(1)10. count 操作11. db.user_addr.count()12. distinct 操作,查询指定列,去重复13. db.foo.distinct(”msg”)14. ”=”操作15. db.foo.find(“timestamp“: “$gte“ : 2)16.

10、 子对象的查找17. db.foo.find(”address.city”:”beijing”)五、 治理1. 查看 collection 数据的大小2. db.deliver_status.dataSize()3. 查看 colleciont 状态4. db.deliver_status.stats()5. 查询全部索引的大小6. db.deliver_status.totalIndexSize()六、 advanced queries:高级查询条件操作符$gt : $lt : =$lte: =$ne : !=、$in : in$nin: not in$all: all$not: 反匹配(1

11、.3.3 及以上版本)查询 name “bruce“and age = 18 的数据db.users.find(name:$ne: “bruce“, age:$gte:18);查询 creation_date ”2021-01-01” and creation_date = ”2021-12-31” 的数据db.users.find(creation_date:$gt:new Date(2021,0,1), $lte:new Date(2021,11,31);查询 age in (20,22,24,26) 的数据db.users.find(age: $in: 20,22,24,26);查询 a

12、ge 取模 10 等于 0 的数据db.users.find(”this.age % 10 = 0”);或者db.users.find(age : $mod : 10, 0);匹配全部db.users.find(favorite_number : $all : 6, 8);可以查询出name: ”David”, age: 26, favorite_number: 6, 8, 9可以不查询出name: ”David”, age: 26, favorite_number: 6, 7,9查询不匹配 name=B*带头的记录db.users.find(name: $not: /B.*/);查询 age

13、 取模 10 不等于 0 的数据db.users.find(age : $not: $mod : 10, 0);返回局部字段选择返回 age 和_id 字段(_id 字段总是会被返回)db.users.find(, age:1);db.users.find(, age:3);db.users.find(, age:true);db.users.find( name : “bruce“ , age:1); 0 为 false, 非 0 为 true选择返回 age、address 和_id 字段db.users.find( name : “bruce“ , age:1, address:1);排

14、解返回 age、address 和_id 字段db.users.find(, age:0, address:false);db.users.find( name : “bruce“ , age:0, address:false);数组元素个数推断对于name: ”David”, age: 26, favorite_number: 6, 7, 9 记录匹配 db.users.find(favorite_number: $size: 3);不匹配 db.users.find(favorite_number: $size: 2);$exists 推断字段是否存在查询全部存在 name 字段的记录db.users.find(name: $exists: true); 查询全部不存在 phone 字段的记录db.users.find(phone: $exists: false);$type 推断字段类型查询全部 name 字段是字符类型的db.users.find(name: $type: 2); 查询全部 age 字段是整型的db.users.find(age: $ty

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号