MongoDB文档相关操作

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)
本文为追加文章

参考连接:
MongoDB 插入文档 https://www.runoob.com/mongodb/mongodb-insert.html
MongoDB 更新文档 https://www.runoob.com/mongodb/mongodb-update.html
MongoDB 删除文档 https://www.runoob.com/mongodb/mongodb-remove.html
MongoDB 查询文档 https://www.runoob.com/mongodb/mongodb-query.html

1.插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)       # COLLECTION_NAME表示数据库中集合的名字
或
db.COLLECTION_NAME.save(document)        # COLLECTION_NAME表示数据库中集合的名字

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne()db.collection.replaceOne() 来代替。
insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
3.2 版本之后新增了 db.collection.insertOne()db.collection.insertMany()
db.collection.insertOne() 表示向集合插入一个文档
db.collection.insertMany() 表示向集合插入多个文档

# insert 插入文档, col 表示数据库中集合的名字叫做 col
# insert默认只能插入一个数据
#  col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。
> db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'w3cschool',
    url: 'http://www.w3cschool.cn',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

# 查看数据库中集合 col 中的数据
db.col.find()

在这里插入图片描述

db.collection.insertMany() 向集合插入多个 文档。

如下的示例向 col 集合插入了三个新的文档。每个文档有三个字段 name,agestatus。由于这些文档未指定 _id 字段,MongoDB 向每个新文档添加了值为 ObjectId 的 _id 字段。 具体参见 插入操作的行为表现.

db.users.insertMany(
   [
     { name: "bob", age: 42, status: "A", },
     { name: "ahn", age: 22, status: "A", },
     { name: "xi", age: 34, status: "D", }
   ]
)

在这里插入图片描述
**注:**使用插入命令时,文档可以使用变量替代。
在这里插入图片描述

2.更新文档

MongoDB数据更新使用 update() 函数。

db.collection.update( criteria, objNew, upsert, multi )

update()函数接受以下四个参数:
criteria : update的查询条件,类似sql update查询内where后面的。
objNew : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

> db.users.find()
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6434"), "name" : "bob", "age" : 42, "status" : "A" }
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6435"), "name" : "ahn", "age" : 22, "status" : "A" }
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6436"), "name" : "xi", "age" : 34, "status" : "D" }
{ "_id" : ObjectId("5ed0ce41d37ce7149a5a6437"), "name" : "tcp", "age" : 13, "status" : "A" }
> db.users.update({"name": "tcp"},{$set:{"age":23}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.find()
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6434"), "name" : "bob", "age" : 42, "status" : "A" }
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6435"), "name" : "ahn", "age" : 22, "status" : "A" }
{ "_id" : ObjectId("5ed0cbdfd37ce7149a5a6436"), "name" : "xi", "age" : 34, "status" : "D" }
{ "_id" : ObjectId("5ed0ce41d37ce7149a5a6437"), "name" : "tcp", "age" : 23, "status" : "A" }
> 

在这里插入图片描述

其他命令格式:

只更新第一条记录:

db.users.update({"name":"tcp"},{$set:{"status":"B"}});
# db.集合名字.update({"查询条件":"内容"}, {$set:{"修改的对象":“数据”}})

在这里插入图片描述
全部更新:

db.users.update({"name":"tcp"},{$set:{"status":"B"}},false,true);
# db.集合名字.update({"查询条件":"内容"}, {$set:{"修改的对象":“数据”}},false,true)

在这里插入图片描述
只添加第一条:

db.users.update({"name":"tcp"},{$set:{"status":"B"}},true,false);
# db.集合名字.update({"查询条件":"内容"}, {$set:{"修改的对象":“数据”}},true,false)

在这里插入图片描述
全部添加进去:

# db.集合名字.update({"查询条件":"内容"}, {$set:{"修改的对象":“数据”}},true,true)

全部更新:

# inc更新
# db.集合名字.update({"查询条件":"内容"}, {$inc:{"修改的对象":“数据”}},false,true)

只更新第一条记录:

# inc更新
# db.集合名字.update({"查询条件":"内容"}, {$inc:{"修改的对象":“数据”}},false,false)

3.删除集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值