MongoDB:更新文档update(1)

官网位置:https://docs.mongodb.com/manual/reference/method/db.collection.update/

MongoDB的使用还是有一定难度的,官网讲解的一环牵扯一环,不容易一下子把握住重点,也不利于快速查询操作,所以整理一下。

语法:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>,
     collation: <document>,
     arrayFilters: [ <filterdocument1>, ... ]
   }
)
参数 类型 描述
query 文档 查询条件,功能类似sql的where语句。
update 文档 将会进行的操作。
upsert 布尔型 可选。在没有找到记录的情况下是否插入,默认为false。
multi 布尔型 可选。是否要更新所有匹配的记录,默认为为false。
writeConcern 文档 可选。待解释和细化。
collation 文档 可选。待解释和细化。
arrayFilters 数组 可选。待解释和细化。

实例
现有数据库记录如下:
数据库:my_test,之前文章创建的数据库,创建数据库,参看这里
集合:my_test。

{
    "_id" : ObjectId("5abb3b5bce69c048be080199"),
    "meta" : {
        "createAt" : ISODate("2018-03-28T06:51:07.579Z"),
        "updateAt" : ISODate("2018-03-28T06:51:07.579Z")
    },
    "a" : "1",
    "b" : "1",
}
{
    "_id" : ObjectId("5abb86fc38fb007b1392103f"),
    "meta" : {
        "createAt" : ISODate("2018-03-28T10:12:21.640Z"),
        "updateAt" : ISODate("2018-03-28T10:12:21.640Z")
    },
    "a" : "1",
    "b" : "3",
}

需求:找到a=“1”,b=“1”的记录,更新b=“2”;没找到,不新增;只更新一条。

完整语句:

db.test.update(
   {a: "1", b: "1"}, //查询条件,<query>=>{a: "1", b: "1"}。
   {b: "2"}, //更新条件,<update>-=>{b: "2"}。
   //这些使用默认值,可以不写
)

猜你喜欢

转载自blog.csdn.net/chaiyu2002/article/details/80861746