mongoDB基本命令操作

server/2024/9/23 18:48:08/

文章目录

  • 1. 安装
  • 2. 基本命令
    • (1) 数据库操作
    • (2) 集合操作
    • (3) 文档操作
      • 1) 简单查询
      • 2) 条件查询
      • 3) 投影查询
      • 4) 文档更新
      • 5) 列值增长修改
      • 6) 删除文档
      • 7) 分页查询
      • 8) 排序查询
      • 9) 正则查询(模糊查询)
      • 10) 比较查询
      • 11) 包含查询
  • 3. 索引
    • (1) 执行计划

1. 安装

官网:https://www.mongodb.com/try/download/community

mongodb_4">(1). 启动mongodb

# 命令行加参数
mongod  --dbpath=..\data\db# 命令行加配置文件,需要先编写配置文件
mongod -f ..\conf\mongod.conf

(2). 数据库连接

# 默认链接本地27017端口
mongo
# 指定连接mongo --host=127.0.0.1 --port=27017

2. 基本命令

(1) 数据库操作

#  查看所有数据库
show dbs  或者 show database# 创建使用数据库,存在使用不存在创建使用
use dbName#  当前数据
db#  删除数据库
db.dropDatabse()

(2) 集合操作

#  集合创建db.createCollection("set1")#  集合查看show collections
#  删除集合
db.集合名称.drop()

(3) 文档操作

#  单文档插入(json格式插入),如果集合不存在会自动创建
db.set1.insert({"id":1,"name":"zhangsan","age":23})
#  多文档插入
db.set1.insertMany([{"id":1,"name":"zhangsan","age":23},{"id":2,"name":"lisi","age":24}])

1) 简单查询

#  查询 
db.集合名称.find()
# 查询一条数据
db.集合名称.findOne()

2) 条件查询

#  根据条件查询(json格式指定条件,如{"id":1})
db.集合名称.find("条件")# 多条件(与或)
db.集合名称.find({$and[{"条件集合"}]})
db.集合名称.find({$or[{"条件集合"}]})

3) 投影查询

投影: 选择列

db.集合名称.find({查询条件},{投影条件})
例如:  db.set1.findOne({},{"name":1})

4) 文档更新

#  全局更新,使用更新内容替换原来的文档(默认为第一个)
db.集合名.update({条件},{更新内容})#  局部更新(只会修改指定字段)
db.集合名称.update({条件},{$set:{更新内容}})
例如:  db.set1.update({"name":"wangwu"},{$set:{"age":18}})# 批量修改(上面语句默认修改一条) 使用updateMany命令
db.set1.updateMany({"name":"wangwu"},{$set:{"age":18}})

5) 列值增长修改

#  使用$inc函数为增加
db.集合名称.update({条件}{$inc:{"增加字段":增加值}})

6) 删除文档

#  会删除条件匹配的所有数据
db.集合名称.remove({条件})
#  删除集合中全部数据
db.集合名称.remove()

7) 分页查询

# 统计,不带条件统计所有
db.集合名称.count({查询条件})#  查询前2条记录
db.集合名称.find().limit(2)
# 跳过前2条数据
db.集合名称.find().limit(2)# 分页查询(配合skip和limit)
db.集合名称.find().limit(2).skip(3)

8) 排序查询

# 1为降序,-1为升序
db.集合名称.find().sort({排序字段:1})

9) 正则查询(模糊查询)

db.集合名称.find({查询条件:/正则/})

10) 比较查询

db.集合名称.find({"字段":{$指令:值}})
/*
指令: >			gt<			lt>= 			gte<=			lte!=			ne
*/

11) 包含查询

db.集合名称.find({"字段":{$in:["匹配集合"]}})

3. 索引

索引: 通过特定数据结构,提高查询效率(B树)

查看索引:

# 查询集合中所有索引
db.集合名称.getIndexs()
/*
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
v :  		索引版本
key: 		索引字段_id:	升序(-1降序)
name: 		索引名称
*/

创建索引:

db.集合名称.createIndex(keys,[options])
例如: db.set1.createIndex({"id":1})
/*
kyes: 为给哪些key创建索引options(常用): unique: 唯一索引name: 	索引名称
*/

删除索引:

db.集合名称.dropIndex({指定名称或者条件})
例如: db.set1.dropIndex({"id":1})# 删除所有索引
db.集合名称.dropIndexes()

(1) 执行计划

相当于mysql的: explain

db.集合名称.find().explain()

http://www.ppmy.cn/server/51084.html

相关文章

区块链中nonce是什么,什么作用

目录 区块链中nonce是什么,什么作用 区块链中nonce是什么,什么作用 Nonce在以太坊中是一个用于确保交易顺序性和唯一性的重要参数。以下是对Nonce的详细解释: 定义 Nonce是一个scalar值,它等于从该地址发送的交易数量,或在具有关联代码的账户的情况下,由该账户创建的合…

自监督分类网络:创新的端到端学习方法

现代人工智能的快速发展中&#xff0c;分类任务的高效解决方案一直备受关注。今天&#xff0c;我们向大家介绍一种名为Self-Classifier的全新自监督端到端分类学习方法。由Elad Amrani、Leonid Karlinsky和Alex Bronstein团队开发&#xff0c;Self-Classifier通过优化同一样本的…

【SpringBoot】SpringBoot:构建实时聊天应用

文章目录 引言项目初始化添加依赖 配置WebSocket创建WebSocket配置类创建WebSocket处理器 创建前端页面创建聊天页面 测试与部署示例&#xff1a;编写单元测试 部署扩展功能用户身份验证消息持久化群组聊天 结论 引言 随着实时通信技术的快速发展&#xff0c;聊天应用在现代We…

Mars3d实现汽车尾气粒子效果从汽车屁股开始发射效果

本身的汽车尾气粒子效果&#xff1a;在汽车模型的中间发射的↓↓↓↓↓↓↓↓↓↓↓ Mars3d实例中是使用transY偏移值实现汽车尾气粒子效果从汽车屁股开始发射效果&#xff1a; // 动态运行车辆的尾气粒子效果 function addDemoGraphic4(graphicLayer) {const fixedRoute new…

Redis学习|Redis主从复制、Redis哨兵模式、缓存穿透、缓存击穿、缓存雪崩概念和相应解决方法

Redis主从复制 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(master/leader)&#xff0c;后者称为从节点(slave/follower);数据的复制是单向的&#xff0c;只能由主节点到从节点。Master以写为主&#xff0c;Slave 以…

Kotlin 数据类(Data Class)

Kotlin 数据类&#xff08;Data Class&#xff09;是一种特别用于持有数据的类。它们简化了数据类的创建&#xff0c;并提供了一些自动生成的方法。下面详细介绍 Kotlin 数据类的原理和使用方法。 数据类的定义 Kotlin 中的数据类使用 data 关键字定义。例如&#xff1a; da…

大模型微调出错的解决方案(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

C++语法08 数据类型之间的强制转换

目录 强制类型转换 强制类型转换格式 整型转换成浮点型 整型转换成浮点型其他写法 训练&#xff1a;糖果奖励 糖果奖励参考代码 浮点型转换成整型 浮点型转换成整型其他写法 训练&#xff1a;分离小数 分离小数参考代码 强制类型转换 强制类型转换&#xff0c;就是把…