本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)
本文为追加文章
参考连接:
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,age和 status。由于这些文档未指定 _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)