mongodb基本操作,增删改查,查询,索引,权限机制

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: mongodb基本操作,增删改查,查询,索引,权限机制

数据库:数据库----集合----数据


show databases showdbs----查看数据库

use 数据库名

通过use选中数据库,dbdropDatabase()删除数据库

注:数据库为隐式创建,在mongo中未存在的数据库不会报错,后期添加集合时会自动创建数据库

集合:集合的添加也为隐式添加

db.createCollection(‘集合名’)----创建集合(不常用,一般隐式创建)

给集合添加数据 每条数据生成的同时会有唯一的id自动生成,也可以手动创建id

db.集合名.insert(JSON数据)

db.c1.insert({unmae:"heihei",age:"18"})

对象可以不带双引号,查看时会自动补充

//一次性插入多条数据   使用数组
db.集合名.insert([
  {name:"nx"},
  {age:12},
  {sex:"man"}
])
//使用for循环,可以一次性输出10条集合,但是前几条不显示
for(var i =1;i<=10;i++){
     db.c2.insert({uname:"a"+i,age:i})
 }

查看集合数据 db.集合名.find().pretty()----美化格式

db.集合名.find() ----------------db.集合名.find(条件 [,查询的列])

条件:

{age:6}-----查询age=6的数据

{age:1,sex:“男”}------还要查询sex=男的数据

查询的列:

不写 --查询全部列

{age:1} 只显示age列

{age:0} 除了age列(字段都显示)


  • 查看文档

db.集合名.update(条件 ,新数据[是否新增,是否修改多条])----(最后为true时,修改所有)

db.集合名.update(条件,新数据)

新数据 {修改器:{键:值}}

db.c1.update({'uname':'zs0'},{$set: {uname:"zs22"}})---修改
db.c1.update({'uname':'zs0'},{uname:"zs22"})---直接替换啦
  • 删除文档
db.集合名.remove(条件 [,是否删除一条])
        (true是 false否 默认)

排序,分页:

  • 排序

db.集合名.find().sort(json数据)

sort(键:就是要排序的列/字段、值:1(升序) -1(降序))

  • Limit,skit方法 —count()统计总数量
db.集合名.find().sort({age:1}).skip(数字).limit(数字)
或 db.集合名.find().skip(数字).limit(数字)

说明:skip跳过指定数量(可选),limit限制查询的数量

skip计算公式:(当前页 - 1) *每页显示条数

聚合查询:

语法:

db.集合名.aggregate({

         {管道:{表达式}}

          …

})



------------------
db.c1.aggregate([
    {
    $group:{
      _id:null,----不分组
      total_num:{$sum:1},
      total_avg:{$avg:"age"}  
        }
    }
  ])
-------------------多管道
db.c1.aggregate([
   {$group:{
     _id:"$sex",
      rs:{$sum:1}
   }},
   {$sort:{
      rs:1}
   }
   ])

优化索引:

  • 创建索引:
  • 优化索引:

db.集合名.createIndex(待创建索引的列 [,额外选项])

参数:

待创建索引的列:{键:1,… ,键:-1}

如:{age:1}表示创建age索引并使用升序的方式储存

、、、、、、、

额外选项:设置索引的名称或者唯一的索引等

给索引自定义名称:db.集合名.createIndexes({name:1},{name:“webopenfather”})

索引名称

组合索引:db.集合名.createIndexes({name:‘1’,age:1})


  • 删除索引

db.集合名.dropIndexes()—删除所有

db.集合名.dropIndex(索引名)

  • 查看索引

db.集合名.getIndexes()

  • 设置唯一索引

db.c1.createIndex({name:1},{unique:true})

  • 分析索引

db.c1.find({age:18}).explain(‘executionStats’)

权限机制:添加超级管理员 只有登录进去才能查看

  • 指定数据库,然后创建用户
use admin
db.createUser({
 "user":"admin",//用户名
 "pwd":"admin888",//密码
 "roles":[{
    role:"root",//身份
   db:"admin"//数据库
    }]
 })
  • 2.退出 卸载服务
bin\mongod --remove    (先ctrl c退出,然后在bin目录下面输入)

(安装需要身份验证的服务):只有登录用户时,才能查看数据库

  • 3.在mongo所在的目录下:
  mongod --install --dbpath d:\data --logpath d:\log\mongodb2.log --auth
  (上面为个人路径)
  重新启动:net start mongodb
  • 4.启动服务 通过超级管理员账号登录

net start mongodb

登录:

语法1:.mongo服务器ip地址:端口/数据库 -u用户名 -p 密码

mongo localhost:127.0.0.1:27017\admin -u admin -p admin888 xxxx

语法2: a-先登录 b-选择数据库 c-输入db.auth(用户名,密码)

db.auth(‘admin’,‘admin888’)


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
5天前
|
NoSQL MongoDB 数据库
MongoDB的索引与索引字段的顺序
MongoDB的索引与索引字段的顺序
16 2
|
7天前
|
NoSQL MongoDB 数据库
通过优化索引以消除 MongoDB 中的 "查询目标已超过1000个扫描对象/返回的文档数" 警告
MongoDB NoSQL数据库在处理复杂查询时可能出现“查询目标已超过1000个扫描对象/返回的文档数”警告。文章分析了该问题,展示了一个示例集合和相关索引,并提供了查询示例。通过`explain`命令发现查询未有效利用索引。解决方案是遵循ESR规则,创建新索引从而优化查询并消除警告。
34 1
|
14天前
|
NoSQL MongoDB 数据库
【MongoDB 专栏】MongoDB 的并发控制与锁机制
【5月更文挑战第11天】MongoDB的并发控制和锁机制保证数据一致性和性能。全局锁用于特殊情况如数据库初始化,限制并发性能;文档级锁提供更高的并发性,针对单个文档锁定。乐观并发控制利用版本号检查减少锁竞争。在分布式环境下,需协调多节点锁,优化包括合理设计数据模型、调整锁配置和利用分布式事务。未来,MongoDB将持续改进这些机制以应对复杂需求。了解并发控制原理对于数据库开发者至关重要。
【MongoDB 专栏】MongoDB 的并发控制与锁机制
|
14天前
|
NoSQL 测试技术 定位技术
【MongoDB 专栏】MongoDB 的地理空间索引与位置查询
【5月更文挑战第10天】MongoDB 支持地理空间数据处理,提供2dsphere(球面)和2d(平面)索引,适用于地图导航、物流、社交网络等领域。通过创建索引,可加速位置查询,如查询范围、最近邻及地理空间聚合。案例包括地图应用、物流追踪和社交网络。注意数据准确性、索引优化和性能测试,以发挥其在地理空间处理中的潜力。学习此功能,为应用开发解锁更多可能性!
【MongoDB 专栏】MongoDB 的地理空间索引与位置查询
|
14天前
|
存储 NoSQL MongoDB
【MongoDB 专栏】如何高效使用 MongoDB 的索引
【5月更文挑战第10天】MongoDB的索引是提升查询性能的关键,它基于B树结构,分为单字段、复合、多键和文本索引。创建索引可通过`createIndex()`或管理工具,适用于频繁查询、排序分组和连接操作。优化策略包括选择合适字段、避免过度索引和定期评估。注意索引影响写入性能、大小限制及可能的失效情况。通过案例分析,应根据业务需求合理创建和使用索引,以实现最佳性能。
【MongoDB 专栏】如何高效使用 MongoDB 的索引
|
14天前
|
存储 NoSQL 关系型数据库
【MongoDB系列笔记】索引
索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。
24 1
|
1天前
|
NoSQL 安全 MongoDB
MongoDB为提供MongoDB数据库服务的云服务合作伙伴推出认证计划
Certified by MongoDB DBaaS计划还将为云计算合作伙伴提供构建深度技术集成所需的专业支持,同时还将携手MongoDB合作伙伴生态系统(MongoDB Partner Ecosystem)共同推出一系列联合的进入市场举措,使云服务合作伙伴能够助力其客户快速走向成功。
|
1天前
|
存储 NoSQL atlas
2024年向量数据库推荐榜单之MongoDB
目前市面上有哪些向量数据库解决方案,可协助您存储和检索高维向量?在推荐优选的几款向量数据库和库之前,我们需要厘清以下这两种技术的差异。
|
10天前
|
存储 NoSQL MongoDB
使用mongodb数据库实例
【5月更文挑战第9天】MongoDB中的集合类似关系数据库的表,但不强制模式,允许嵌入式文档以实现更灵活的数据布局。安装MongoDB在Ubuntu上涉及添加源列表和更新,CentOS则需创建配置文件。MongoDB支持备份和恢复,以及全文搜索。其灵活模式和动态模式减少了开发中的复杂性,但并非无模式,大部分数据仍具结构化特点。
86 2
|
12天前
|
存储 SQL NoSQL
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?