MongoDB 是一个开源的、面向文档的 NoSQL 数据库,它使用 BSON(类似于 JSON)格式存储数据,MongoDB 的设计目标是在高性能、高可用性和易扩展性方面提供卓越的表现,在本教程中,我们将介绍 MongoDB 的基本概念和使用方法,帮助您快速入门。
MongoDB 基本概念
1、文档(Document)
在 MongoDB 中,数据以文档的形式存储,文档是键值对的集合,类似于 JSON 对象。
{ "name": "张三", "age": 25, "city": "北京" }
2、集合(Collection)
集合是一组文档的容器,在关系型数据库中,我们通常将数据存储在表(Table)中;而在 MongoDB 中,我们将数据存储在集合中,我们可以创建一个名为 users
的集合,用于存储用户信息。
3、数据库(Database)
数据库是一组集合的容器,在 MongoDB 中,我们可以创建多个数据库来组织不同类型的数据,我们可以创建一个名为 test
的数据库,用于存储测试数据。
MongoDB 安装与启动
1、安装 MongoDB
根据您使用的操作系统,从 MongoDB 官网下载相应的安装包并安装,安装完成后,MongoDB 会自动创建一个名为 data
的默认数据库。
2、启动 MongoDB
在命令行中输入以下命令启动 MongoDB:
mongod dbpath /path/to/your/data/directory
/path/to/your/data/directory
是您希望存储数据的目录,启动成功后,您将看到类似以下的输出:
[initandlisten] waiting for connections on port 27017
MongoDB 基本操作
1、连接 MongoDB
在命令行中输入以下命令连接到 MongoDB:
mongo host <hostname> port <port> authenticationDatabase <database> username <username> password <password>
<hostname>
是您的服务器地址,<port>
是端口号(默认为 27017),<database>
是认证数据库名称(默认为 admin),<username>
和 <password>
分别是您的用户名和密码,如果您不需要身份验证,可以省略这些参数。
2、切换数据库
在连接成功后,您可以使用 use
命令切换到指定的数据库:
use test;
3、查看当前数据库中的集合
使用 show collections
命令查看当前数据库中的所有集合:
show collections;
4、插入文档
使用 insertOne
或 insertMany
命令向集合中插入文档:
// 插入单个文档 db.users.insertOne({name: "李四", age: 30, city: "上海"}); // 插入多个文档(数组形式) db.users.insertMany([{name: "王五", age: 28, city: "深圳"}, {name: "赵六", age: 26, city: "广州"}]);
5、查询文档
使用 find
、findOne
、findById
、findOneAndUpdate
、updateMany
、deleteOne
、deleteMany
、countDocuments
等方法查询和修改文档,以下是一些示例:
根据条件查询文档:
// 根据年龄查询用户(大于等于30岁) db.users.find({age: {$gte: 30}}); // 根据城市查询用户(北京) db.users.find({city: "北京"});
根据 ID 查询文档:
// 根据 ID 查询用户(_id: ObjectId("...")) db.users.findById("..."); // ...表示实际的 ID 值,需要替换为实际值,注意:ObjectId()函数返回的是字符串类型,如果需要比较 ID,请确保两个 ID 都是字符串类型,否则,请使用 new ObjectId() 函数将字符串转换为 ObjectId,new ObjectId("...")。 // 根据 ID 更新用户信息(_id: ObjectId("...")) db.users.findOneAndUpdate({_id: new ObjectId("...")}, {$set: {name: "新名字", age: 35}});// ...表示实际的 ID 值,需要替换为实际值,注意:ObjectId()函数返回的是字符串类型,如果需要比较 ID,请确保两个 ID 都是字符串类型,否则,请使用 new ObjectId() 函数将字符串转换为 ObjectId,new ObjectId("...")。 // 根据 ID 删除用户(_id: ObjectId("...")) db.users.deleteOne({_id: new ObjectId("...")}); // ...表示实际的 ID 值,需要替换为实际值,注意:ObjectId()函数返回的是字符串类型,如果需要比较 ID,请确保两个 ID 都是字符串类型,否则,请使用 new ObjectId() 函数将字符串转换为 ObjectId,new ObjectId("...")。 // 根据条件删除多个文档(匹配所有条件)db.users.deleteMany({}); // {}表示空对象,表示匹配所有条件,如果需要指定条件,请使用具体的查询条件替换 {}。{age: {$gte: 30}}。 // 根据条件删除多个文档(匹配至少一个条件)db.users.deleteMany({age: {$gte: 30}}); // {age: {$gte: 30}}表示匹配年龄大于等于30岁的用户,如果需要指定其他条件,请使用具体的查询条件替换 {age: {$gte: 30}}。{city: "北京"}。 // 根据条件删除多个文档(匹配所有条件)db.users.deleteMany({city: "北京"}); // {city: "北京"}表示匹配城市为北京的用户,如果需要指定其他条件,请使用具体的查询条件替换 {city: "北京"}。{age: {$gte: 30}}。 // 根据条件删除多个文档(匹配至少一个条件)db.users.deleteMany({city: "北京", age: {$gte: 30}}); // {city: "北京", age: {$gte: 30}}表示匹配城市为北京且年龄大于等于30岁的用户,如果需要指定其他条件,请使用具体的查询条件替换 {city: "北京", age: {$gte: 30}}。{name: "李四"},\```
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/501713.html