返回
Not Only SQL (五) - MongoDB Introduce & CRUD(下)
后端
2023-12-31 19:07:35
我们已经学习了如何使用MongoDB来创建和插入文档,现在让我们看看如何更新、删除和检索它们。
更新文档
有三种方法可以更新MongoDB中的文档:
-
db.
.update() 此方法用于更新单个或多个文档。语法为:
db.<collection>.update(<query>, <update>, {upsert: <boolean>, multi: <boolean>})
其中:
<query>
:用于指定要更新的文档。<update>
:用于指定要更新的内容。upsert
:如果为true,则在没有匹配文档的情况下插入一条新文档。multi
:如果为true,则更新所有匹配的文档。
例如,要将名为"John"的用户的年龄更新为30岁,可以使用以下命令:
db.users.update({name: "John"}, {$set: {age: 30}})
-
db.
.findAndModify() 此方法用于查找并更新单个文档。语法为:
db.<collection>.findAndModify(<query>, <sort>, <update>, {new: <boolean>, upsert: <boolean>})
其中:
<query>
:用于指定要更新的文档。<sort>
:用于指定要按哪个字段对文档进行排序。<update>
:用于指定要更新的内容。new
:如果为true,则返回更新后的文档,否则返回更新前的文档。upsert
:如果为true,则在没有匹配文档的情况下插入一条新文档。
例如,要查找并更新名为"John"的用户的年龄,可以使用以下命令:
db.users.findAndModify({name: "John"}, {sort: {age: -1}}, {$set: {age: 30}}, {new: true})
-
db.
.save() 此方法用于插入或更新单个文档。语法为:
db.<collection>.save(<document>)
其中:
<document>
:要插入或更新的文档。
如果文档不存在,则此方法会将其插入到集合中。如果文档存在,则此方法会将其更新。
例如,要将以下文档插入到"users"集合中:
{ name: "John", age: 30 }
可以使用以下命令:
db.users.save({name: "John", age: 30})
删除文档
有两种方法可以从MongoDB中删除文档:
-
db.
.remove() 此方法用于删除单个或多个文档。语法为:
db.<collection>.remove(<query>, {justOne: <boolean>})
其中:
<query>
:用于指定要删除的文档。justOne
:如果为true,则只删除第一个匹配的文档。
例如,要删除名为"John"的用户的文档,可以使用以下命令:
db.users.remove({name: "John"})
-
db.
.drop() 此方法用于删除整个集合。语法为:
db.<collection>.drop()
例如,要删除"users"集合,可以使用以下命令:
db.users.drop()
检索文档
有两种方法可以从MongoDB中检索文档:
-
db.
.find() 此方法用于查找单个或多个文档。语法为:
db.<collection>.find(<query>, <projection>)
其中:
<query>
:用于指定要查找的文档。<projection>
:用于指定要返回的字段。
例如,要查找所有名为"John"的用户的文档,可以使用以下命令:
db.users.find({name: "John"})
要查找所有用户的姓名和年龄,可以使用以下命令:
db.users.find({}, {name: 1, age: 1})
-
db.
.findOne() 此方法用于查找单个文档。语法为:
db.<collection>.findOne(<query>, <projection>)
其中:
<query>
:用于指定要查找的文档。<projection>
:用于指定要返回的字段。
例如,要查找第一个名为"John"的用户的文档,可以使用以下命令:
db.users.findOne({name: "John"})
要查找第一个用户的姓名和年龄,可以使用以下命令:
db.users.findOne({}, {name: 1, age: 1})
这就是MongoDB的基本操作方法。在下一篇博文中,我们将学习如何使用MongoDB来创建索引和聚合数据。