MongoDB 基本操作

news/2025/2/15 10:48:44/

一、数据库操作

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.ppmy.cn/news/1572222.html

相关文章

基于角色访问控制的UML 表示

Michael E. Shin、Gail-Joon Ahn 著,UMLChina 译 摘要 在基于角色访问控制(role-based access control,RBAC)中,权限和角色相关,用户被当作相应角色的成员而获得角色的权限。RBAC 背后的首要动机是为了简…

PMP冲刺每日一题(8)

试题1 您已经被委派为某项目的项目经理,权职范围明确界定,限于产品总装线的设计及建设阶段。客户组的一位成员向项目部门主管要求在项目安装阶段完成一项小工作。项目部门主管请客户询问项目经理。对这一请求的答复应包括∶ A、经修订的资源计划 B、经项…

语言大模型基础概念 一(先了解听说过的名词都是什么)

SFT(监督微调)和RLHF(基于人类反馈的强化学习)的区别 STF(Supervised Fine-Tuning)和RLHF(Reinforcement Learning from Human Feedback)是两种不同的模型训练方法,分别…

Lua闭包的使用以及需要注意的问题

1. 闭包的基本概念 在 Lua 中,闭包是一个函数值,它包含了函数本身以及该函数所创建时的环境。闭包允许函数访问其外部函数作用域中的变量,即使外部函数已经执行完毕。 2.闭包的简单使用 代码:在下面的代码中,create…

SGI STL内存池源代码解析----allocate内存分配函数

allocate 函数是 SGI STL 中 二级空间配置器 的核心函数之一,负责根据请求的内存大小分配内存。它的设计非常精巧,结合了 自由链表(free list) 和 内存池 技术,以高效地管理小块内存(小于等于 128 字节&…

Cocos Creator 3.8 版本开发 2D 游戏常用组件和方法

Cocos Creator 3.8 版本开发 2D 游戏常用组件和方法 一、常用组件 1. Node(节点) 功能:Cocos Creator 中的所有元素都基于 Node(节点)对象,包括精灵、标签、按钮等。每个节点可以包含多个子节点。常用方…

2.7 静态方法/构造函数Mock

静态方法/构造函数Mock 在单元测试中,静态方法和构造函数的Mock是相对复杂的需求,因为Mockito的核心设计基于对象实例的模拟。然而,通过扩展工具或特定技巧,可以实现对这些场景的处理。本章详解两种主流方案:PowerMoc…

性格测评小程序04题库管理

目录 1 创建数据源1.1 题库表1.2 选项表 2 搭建管理后台2.1 搭建题库功能2.2 搭建选项功能2.3 题库和选项联动 3 最终效果总结 我们现在性格测评的算法是通过40个题目来测评用户属于哪一个分类,为此后台需要有可以设置题目和选项的功能,本篇我们介绍一下…