MongoDB update():更新文档(附带实例)
MongoDB使用update()方法来更新集合中的文档。官方推荐使用updateOne()方法和updateMany()方法分别更新单条和多条文档。
update() 方法更新文档的基本语法如下:
例如,插入一条数据后,使用 update() 方法进行更改,代码如下:
在创建集合时,可指定 collation 参数的值为 zh,并按 name 字段排序,这样便会按照 collation 参数指定的中文规则来排序,代码如下:
update() 方法更新文档的基本语法如下:
db.collection.update( <query>, <update>, { upsert, multi, writeConcern, collation } )上述代码中各参数的含义如下:
- <query> 参数表示查询条件。
- <update> 为更新操作符。
- upsert 为布尔型可选项,表示如果不存在待更新的文档,是否插入这个新的文档,其中, true 表示插入;默认值为 false,表示不插入。
- multi 参数也是布尔型可选项,默认值为 false,只更新找到的第一条记录。该字段的值如果为 true,则表示把按条件查询出来的记录全部更新。
- writeConcern 参数表示出错级别。
- collation 参数可以指定语言,例如按中文排序。
例如,插入一条数据后,使用 update() 方法进行更改,代码如下:
db.test.insertMany([ {item: "card", qty: 15}, {item: "envelope", qty: 20}, {item: "stamps", qty: 30} ]); // 修改item: "card", qty:15中 qty的值为35 db.test.update( { Item: "card" }, { $set: {qty: 35} } )collation 参数允许 MongoDB 的用户根据不同的语言定制排序规则。在 MongoDB 中,字符串被默认当作一个普通的二进制字符串进行对比。而使用中文名称时通常有按拼音顺序排序的需求,这时就可以通过 collation 参数来实现。
在创建集合时,可指定 collation 参数的值为 zh,并按 name 字段排序,这样便会按照 collation 参数指定的中文规则来排序,代码如下:
db.createCollection("person", {collation: {locale: "zh"}}) // 创建集合并指定语言 db.person.insert({name: "张三"}) db.person.insert({name: "李四"}) db.person.insert({name: "王五"}) db.person.insert({name: "马六"}) db.person.insert({name: "张七"}) db.person.find().sort({name: 1}) // 查询并排序,name:1指定返回name列返回结果如下:
{ "_id": ObjectId("586b995d0cec8d86881cffae"), "name": "李四" }
{ "_id": ObjectId("586b995d0cec8d86881cffb0"), "name": "马六" }
{ "_id": ObjectId("586b995d0cec8d86881cffaf"), "name": "王五" }
{ "_id": ObjectId("586b995d0cec8d86881cffb1"), "name": "张七" }
{ "_id": ObjectId("586b995d0cec8d86881cffad"), "name": "张三" }