当前位置: 首页 > news >正文

MongoDB 基本操作

一、数据库操作

1. 切换或创建数据库

使用`use`命令切换到指定数据库,若该数据库不存在,在首次插入数据时会自动创建。

use myDatabase

2. 查看所有数据库

使用`show dbs`命令查看 MongoDB 实例中的所有数据库。

show dbs

3. 删除当前数据库

使用`db.dropDatabase()`命令删除当前使用的数据库。

db.dropDatabase();

二、集合操作

1. 创建集合

使用`db.createCollection()`方法创建集合,也可以不手动创建,插入文档时若集合不存在会自动创建。

db.createCollection("myCollection");

2. 查看所有集合

使用`show collections`命令查看当前数据库中的所有集合。

show collections

3. 删除集合

使用`db.collection.drop()`方法删除指定集合。

db.myCollection.drop();

三、文档操作

1. 插入文档

1.1 插入单个文档

使用`db.collection.insertOne()`方法插入单个文档。

db.myCollection.insertOne({ name: "John", age: 30 });

1.2 插入多个文档

使用`db.collection.insertMany()`方法插入多个文档。

db.myCollection.insertMany([{ name: "Alice", age: 25 },{ name: "Bob", age: 35 },]);

2. 查询文档

2.1 查询所有文档

使用`db.collection.find()`方法查询集合中的所有文档。

db.myCollection.find();

2.2 条件查询

在`find()`方法中传入查询条件对象,可根据条件查询文档。查询`age`大于 30 的文档

db.myCollection.find({ age: { $gt: 30 } });

2.3 投影查询

可指定返回的字段,第二个参数传入投影对象,值为 1 表示返回该字段,值为 0 表示不返回。

db.myCollection.find({ age: { $gt: 30 } }, { name: 1, _id: 0 });

3. 更新文档

3.1 更新单个文档

使用`db.collection.updateOne()`方法更新符合条件的第一个文档。`$set`是更新操作符,用于设置字段的值。

db.myCollection.updateOne({ name: "John" }, { $set: { age: 31 } });

3.2 更新多个文档

使用`db.collection.updateMany()`方法更新所有符合条件的文档。将`age`小于 30 的所有文档的`age`字段加 1,`$inc`是更新操作符,用于增加字段的值。

db.myCollection.updateMany({ age: { $lt: 30 } }, { $inc: { age: 1 } });

4. 删除文档

4.1 删除单个文档

使用`db.collection.deleteOne()`方法删除符合条件的第一个文档。

db.myCollection.deleteOne({ name: "Alice" });

4.2 删除多个文档

使用`db.collection.deleteMany()`方法删除所有符合条件的文档。

db.myCollection.deleteMany({ age: { $gt: 35 } });

四、索引操作

1. 创建索引

使用`db.collection.createIndex()`方法为指定字段创建索引。为`name`字段创建升序索引,`1`表示升序,`-1`表示降序。

db.myCollection.createIndex({ name: 1 });

2. 查看索引

使用`db.collection.getIndexes()`方法查看集合的所有索引。

db.myCollection.getIndexes();

3. 删除索引

使用`db.collection.dropIndex()`方法删除指定索引。

db.myCollection.dropIndex({ name: 1 });
http://www.lryc.cn/news/535527.html

相关文章:

  • Eclipse JSP/Servlet 深入解析
  • Hyperledger caliper 性能测试
  • Record-Mode 备案免关站插件,让 WordPress 备案不影响 SEO 和收录
  • 【Java 面试 八股文】Redis篇
  • 介绍几款免费的显示器辅助工具!
  • django配置跨域
  • web前端第三次作业
  • 【Pandas】pandas Series align
  • DeepSeek-V3网络模型架构图解
  • Linux系统管理小课堂
  • 明远智睿核心板在智能家居与工业网关中的应用实践
  • Windows 系统 GDAL库 配置到 Qt 上
  • 部署onlyoffice后,php版的callback及小魔改(logo和关于)
  • 《qt open3d网格拉普拉斯平滑》
  • 【愚公系列】《Python网络爬虫从入门到精通》004-请求模块urllib3
  • 网络安全技术复习总结
  • 初阶c语言(while循环二分法)
  • 如何使用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天
  • Java_多线程
  • uniapp开发h5部署到服务器
  • 如何在个人电脑本地化部署Deepseek-R1大模型
  • Java中关于JSON的基本使用
  • 简化的动态稀疏视觉Transformer的PyTorch代码
  • PADS多层板减少层数
  • 你需要提供管理员权限才能删除此文件夹解决方法
  • 螺旋折线(蓝桥杯18G)
  • 常见的数据仓库有哪些?
  • 数据科学之数据管理|NumPy数据管
  • LSTM 学习笔记 之pytorch调包每个参数的解释
  • ASUS/华硕飞行堡垒9 FX506H FX706H 原厂Win10系统 工厂文件 带ASUS Recovery恢复