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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 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
相关文章
|
1月前
|
存储 NoSQL 关系型数据库
MongoDB索引知识
MongoDB索引知识
29 1
MongoDB索引知识
|
1月前
|
存储 NoSQL MongoDB
MongoDB 索引限制
10月更文挑战第22天
39 2
|
1月前
|
NoSQL MongoDB 索引
MongoDB 高级索引
10月更文挑战第22天
33 2
|
2月前
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
18 1
|
2月前
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
30 1
|
2月前
|
存储 NoSQL MongoDB
MongoDB 索引
MongoDB 索引
34 3
|
2月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
1天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
26 15
|
9天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
1月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
下一篇
DataWorks