Mongo笔记5-修改

先插入数据

> db.inventory.insertMany( [

... { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },

... { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },

... { item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },

... { item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },

... { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },

... { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },

... { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },

... { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },

... { item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },

... { item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }

... ] );

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("5c77fad696db7d9a142c0795"),

ObjectId("5c77fad696db7d9a142c0796"),

ObjectId("5c77fad696db7d9a142c0797"),

ObjectId("5c77fad696db7d9a142c0798"),

ObjectId("5c77fad696db7d9a142c0799"),

ObjectId("5c77fad696db7d9a142c079a"),

ObjectId("5c77fad696db7d9a142c079b"),

ObjectId("5c77fad696db7d9a142c079c"),

ObjectId("5c77fad696db7d9a142c079d"),

ObjectId("5c77fad696db7d9a142c079e")

]

}

>

更新单个文档

db.collection.updateOne(

<filter>,

<update>,

{

upsert: <boolean>,

writeConcern: <document>,

collation: <document>,

arrayFilters: [ <filterdocument1>, ... ]

}

)

详细介绍:https://docs.mongodb.com/manual/reference/method/db.collection.updateOne/#db.collection.updateOne

 

使用$set操作符更新size的uom字段为“cm”,status字段值为“P”;

使用$currentDate操作符将lastModified字段的值更新为当前日期。如果lastModified字段不存在,则$currentDate将创建该字段;

> db.inventory.updateOne(

... { item: "paper" },

... {

... $set: { "size.uom": "cm", status: "P" },

... $currentDate: { lastModified: true }

... }

... )

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

>

 

 

更新多个文档

db.collection.updateMany(

<filter>,

<update>,

{

upsert: <boolean>,

writeConcern: <document>,

collation: <document>,

arrayFilters: [ <filterdocument1>, ... ]

}

)

详细介绍:https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/

 

使用db.collection.updateMany()方法更新"qty"的值小于50的文档:

使用$set操作符更新size的uom字段为“in”,status字段值为“P”;

使用$currentDate操作符将lastModified字段的值更新为当前日期。如果lastModified字段不存在,则$currentDate将创建该字段;

> db.inventory.updateMany(

... { "qty": { $lt: 50 } },

... {

... $set: { "size.uom": "in", status: "P" },

... $currentDate: { lastModified: true }

... }

... )

{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }

> db.inventory.find()

{ "_id" : ObjectId("5c77fad696db7d9a142c0795"), "item" : "canvas", "qty" : 100, "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" }, "status" : "A" }

{ "_id" : ObjectId("5c77fad696db7d9a142c0796"), "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "in" }, "status" : "P", "lastModified" : ISODate("2019-02-28T15:29:13.038Z") }

{ "_id" : ObjectId("5c77fad696db7d9a142c0797"), "item" : "mat", "qty" : 85, "size" : { "h" : 27.9, "w" : 35.5, "uom" : "cm" }, "status" : "A" }

{ "_id" : ObjectId("5c77fad696db7d9a142c0798"), "item" : "mousepad", "qty" : 25, "size" : { "h" : 19, "w" : 22.85, "uom" : "in" }, "status" : "P", "lastModified" : ISODate("2019-02-28T15:29:13.038Z") }

{ "_id" : ObjectId("5c77fad696db7d9a142c0799"), "item" : "notebook", "qty" : 50, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "P" }

{ "_id" : ObjectId("5c77fad696db7d9a142c079a"), "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "cm" }, "status" : "P", "lastModified" : ISODate("2019-02-28T15:18:39.438Z") }

{ "_id" : ObjectId("5c77fad696db7d9a142c079b"), "item" : "planner", "qty" : 75, "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "status" : "D" }

{ "_id" : ObjectId("5c77fad696db7d9a142c079c"), "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "in" }, "status" : "P", "lastModified" : ISODate("2019-02-28T15:29:13.038Z") }

{ "_id" : ObjectId("5c77fad696db7d9a142c079d"), "item" : "sketchbook", "qty" : 80, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }

{ "_id" : ObjectId("5c77fad696db7d9a142c079e"), "item" : "sketch pad", "qty" : 95, "size" : { "h" : 22.85, "w" : 30.5, "uom" : "cm" }, "status" : "A" }

>

即可更新一个文档或多个文档

db.collection.update(

<query>,

<update>,

{

upsert: <boolean>,

multi: <boolean>,

writeConcern: <document>,

collation: <document>,

arrayFilters: [ <filterdocument1>, ... ]

}

)

修改集合中的一个或多个现有文档。该方法可以修改现有文档或文档的特定字段,或者完全替换现有文档,这取决于update参数。

默认情况下,update()方法更新单个文档。设置Multi参数以更新与查询条件匹配的所有文档。

详细介绍:https://docs.mongodb.com/manual/reference/method/db.collection.update/

替换一个文档

要替换除_id字段之外的文档的全部内容,请将一个全新的文档作为第二个参数传递给db.collection.replaceOne()

替换文档可以具有与原始文档不同的字段。在替换文档中,可以省略_id字段,因为_id字段是不可变的;但是,如果包含_id字段,那么它的值必须与当前值相同。

格式:

db.collection.replaceOne(

<filter>,

<replacement>,

{

upsert: <boolean>,

writeConcern: <document>,

collation: <document>

}

)

详细介绍:https://docs.mongodb.com/manual/reference/method/db.collection.replaceOne/

db.inventory.replaceOne(

{ item: "paper" },

{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }

)

 

try { db.restaurant.replaceOne( { "name" : "Central Perk Cafe" }, { "name" : "Central Pork Cafe", "Borough" : "Manhattan" } ); } catch (e){ print(e); }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值