返回

Not Only SQL (五) - MongoDB Introduce & CRUD(下)

后端

我们已经学习了如何使用MongoDB来创建和插入文档,现在让我们看看如何更新、删除和检索它们。

更新文档

有三种方法可以更新MongoDB中的文档:

  1. 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}})
    
  2. 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})
    
  3. db..save()

    此方法用于插入或更新单个文档。语法为:

    db.<collection>.save(<document>)
    

    其中:

    • <document>:要插入或更新的文档。

    如果文档不存在,则此方法会将其插入到集合中。如果文档存在,则此方法会将其更新。

    例如,要将以下文档插入到"users"集合中:

    {
        name: "John",
        age: 30
    }
    

    可以使用以下命令:

    db.users.save({name: "John", age: 30})
    

删除文档

有两种方法可以从MongoDB中删除文档:

  1. db..remove()

    此方法用于删除单个或多个文档。语法为:

    db.<collection>.remove(<query>, {justOne: <boolean>})
    

    其中:

    • <query>:用于指定要删除的文档。
    • justOne:如果为true,则只删除第一个匹配的文档。

    例如,要删除名为"John"的用户的文档,可以使用以下命令:

    db.users.remove({name: "John"})
    
  2. db..drop()

    此方法用于删除整个集合。语法为:

    db.<collection>.drop()
    

    例如,要删除"users"集合,可以使用以下命令:

    db.users.drop()
    

检索文档

有两种方法可以从MongoDB中检索文档:

  1. db..find()

    此方法用于查找单个或多个文档。语法为:

    db.<collection>.find(<query>, <projection>)
    

    其中:

    • <query>:用于指定要查找的文档。
    • <projection>:用于指定要返回的字段。

    例如,要查找所有名为"John"的用户的文档,可以使用以下命令:

    db.users.find({name: "John"})
    

    要查找所有用户的姓名和年龄,可以使用以下命令:

    db.users.find({}, {name: 1, age: 1})
    
  2. db..findOne()

    此方法用于查找单个文档。语法为:

    db.<collection>.findOne(<query>, <projection>)
    

    其中:

    • <query>:用于指定要查找的文档。
    • <projection>:用于指定要返回的字段。

    例如,要查找第一个名为"John"的用户的文档,可以使用以下命令:

    db.users.findOne({name: "John"})
    

    要查找第一个用户的姓名和年龄,可以使用以下命令:

    db.users.findOne({}, {name: 1, age: 1})
    

这就是MongoDB的基本操作方法。在下一篇博文中,我们将学习如何使用MongoDB来创建索引和聚合数据。