MongoDB数据的增删改查

本文深入解析MongoDB的增删查改基本命令,包括如何插入数据、查询集合、更新文档和删除记录,同时介绍了ObjectId的生成原理及重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章主要学习MongoDB命令,在开始正题之前,我们需要做些准备工作,创建数据库和集合。
1.使用use命令进入数据库(数据库无需创建,直接进入)

use  School

2.创建一个集合

db.createCollections("Student")

当然,我们也无需使用以上语句创建集合,直接插入一条数据也可创建集合,如:

db.Student.insert({"Name":"Neal","Age":24})

好!接下来开始正题!

增(insert)

要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 方法。
insert() 命令的基本语法如下:

db.COLLECTION_NAME.insert(document)

示例:

> db.Student.insert({"Name":"Neal","Age":24})
WriteResult({ "nInserted" : 1 })

查(find)

要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。

db.COLLECTION_NAME.find()

示例:

> db.Student.find()
{ "_id" : ObjectId("5561c446ea24f9eb53a33536"), "Name" : "Neal", "Age" : 24 }
{ "_id" : ObjectId("5561c7e2ea24f9eb53a33537"), "Name" : "Harry", "Age" : 23, "Gender" : "Male" }

使用find()可以查询当前集合所有的文档,加入查询参数可以查询某些特定条件的数据,如查询名字是Harry的学生:

> db.Student.find({"Name":"Harry"})
{ "_id" : ObjectId("5561c7e2ea24f9eb53a33537"), "Name" : "Harry", "Age" : 23, "Gender" : "Male" }

使用findOne()可以查询第一条数据,同理加入查询参数可以查询符合特定条件的第一条数据。

ObjectId
想必大家看到查询出来的数据中添加了我们在插入过程中并没有指定的_Id字段。
是这样的,插入文档时,如果我们不指定_id参数,MongoDB为文档分配一个独特的ObjectId。
_id是12个字节的十六进制数,唯一标识一个集合中的每个文档。12个字节被划分如下:

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

改(Update)

MongoDB的 update() 方法用于更新文档的集合。

db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

示例:
通过下面语句可以将Name为Neal的学生Age改为20。

> db.Student.update({"Name":"Neal"},{$set:{"Age":20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Student.find({"Name":"Neal"})
{ "_id" : ObjectId("5561c446ea24f9eb53a33536"), "Name" : "Neal", "Age" : 20 }

删(Remove)

MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria(条件) ,第二是justOne标志:

  • deletion criteria :(可选)删除条件,根据文件将被删除。
    语法:
db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
  • justOne : (可选)如果设置为true或1,然后只删除一个文件。
    语法:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

示例:

> db.Student.remove({"Name":"Neal"})
WriteResult({ "nRemoved" : 1 })
> db.Student.find({"Name":"Neal"})
>

注意:使用db.Student.remove()会删除Student集合中的所有数据,请谨慎使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值