A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-3-24 16:29 编辑

【济南中心】NoSQL非关系型数据库——MongoDB(二)

MongoDB常用操作:
  •创建数据库,使用命令use 数据库名称,如:usemydb1
  • 删除当前数据库,使用命令 db.dropDatabase()

  • 查看所有数据库,使用命令 show dbs
  • 查看当前所在数据库,使用命令 db


  • 查看当前数据库中所有的集合,使用命令 show collections 或使用show tables

  • 创建集合有两种方式,显示创建隐式创建显示创建可以使用命令db.createCollection(“集合名称")隐式创建可以使用命令db.集合名称.insert({}),指创建集合并同时向集合中插入数据,例如:db.customer.insert({name:”jack”})

  • 向集合添加文档,使用命令 db.集合名称.insert({}),例如:db.user1.insert({name:”jack”,age:20})


  • 删除集合中的文档,使用命令 db.集合名称.remove({删除条件}),不加删除条件为删除集合中的所有文档,例如,db.c1.remove() 为删除c1集合中的所有文档,db.c1.remove({name:”user1”})为删除c1集合中name为user1的文档
  •查询集合中的文档,可以使用命令db.集合名称.find({条件}),或者使用db.集合名称.findOne()  查询第一个文档


  • 查询集合中的文档,返回某些特定的键值

  • 查询集合中的文档 ,使用条件表达式(<, <=, >, >=,!=)
//大于:field > value
db.collection.find({field:{$gt:value}});
//小于:field < value
db.collection.find({field:{$lt:value}});
//大于等于:field >= value
db.collection.find({field:{$gte:value}});
//小于等于:field <= value
db.collection.find({field:{$lte:value}});
//不等于:  field!= value
db.collection.find({field:{$ne:value}});
  • 查询集合中的文档 ,$all主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回

  • 查询集合中的文档 ,$in,类似于关系型数据库中的IN

  • 查询集合中的文档 ,$nin,与$in相反

  • 查询集合中的文档 ,$or,相当于关系型数据库中的OR,表示或者的关系,例如查询name为user2或者age为3的文档,命令为:
db.customer.find({$or:[{name:”user2”},{age:3}]})
  • 查询集合中的文档 ,$nor,表示根据条件过滤掉某些数据,例如查询name不是user2,age不是3的文档,命令为:
db.customer.find({$nor:[{name:”user2”},{age:3}]})

  • 查询集合中的文档 ,$exists,用于查询集合中存在某个键的文档或不存在某个键的文档,例如查询customer集合中存在name键的所有文档,可以使用db.customer.find({name:{$exists:1}}),
$exists:1表示真,指存在
$exists:0表示假,指不存在
  • 查询集合中的文档 ,统计(count)、排序(sort)、分页(skip、limit)
db.customer.count();
db.customer.find().count();
db.customer.find({age:{$lt:5}}).count();
db.customer.find().sort({age:1});
db.customer.find().skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3).count();
db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);
  • 查询集合中的文档 ,类似于关系型数据库,mongodb中也有游标的概念

  • 更新集合中的文档,语法如下:
db.collection.update(criteria,objNew,upserti)
参数说明:
criteria:用于设置查询条件的对象
objNew:用于设置更新内容的对象
upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1
注意:默认情况下,只会更新第一个符合条件的记录
一般情况下后两个参数分别为0,1 ,即:
db.collection.update(criteria,objNew,0,1)
  • 更新集合中的文档,将集合中name为user1的文档改成name为jack

  • 更新集合中的文档, $set用来指定一个键的值,如果这个键不存在,则创建它。例如:
给name为user1的文档添加address,可以使用命令:db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
将name为user1的文档修改address为tj,其它键值对不变,命令为:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)
  • 更新集合中的文档,使用$inc 将集合中name为user1的age加1,其它键不变, $inc表示使某个键值加减指定的数值

  • 更新集合中的文档, $unset用来删除某个键,例如删除name为user1的文档中的address键,可以使用命令:
db.c1.update({name:”user1”},{$unset:{address:1}},0,1)
索引:
  索引就是用来加速查询的。数据库索引与书籍的索引类似:有了索引就不需要翻遍整本书,数据库则可以直接在索引中查找,使得查找速度能提高几个数量级。在索引中找到条目以后,就可以直接跳转到目标文档的位置。
• 创建普通索引,使用命令 db.collection.ensureIndex({key:1})
• 查看关于索引的相关信息,使用命令db.collection.stats()
• 查看查询使用索引的情况,使用命令   db.collection.find({key:value}).explain()
• 删除索引,使用命令db.collection.dropIndex({key:1})
• 删除集合,也会将集合中的索引全部删除
• 创建唯一索引,使用命令 db.collection.ensureIndex({key:1}{unique:true})
• 查看关于索引的相关信息,使用命令db.collection.stats()
• 查看查询使用索引的情况,使用命令   db.collection.find({key:value}).explain()
• 删除索引,使用命令db.collection.dropIndex({key:1})
• 删除集合,也会将集合中的索引全部删除
=========================未完,持续更新中!!=================

3 个回复

倒序浏览
mark~~~~~~~~~~~~
回复 使用道具 举报
受教了!!!!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
谢谢楼主分享,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马