MongoDB学习笔记(三)MongoDB常见操作(续)

(7)更新集合中的文档update(),语法格式:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。


我们在集合 col3 中插入如下数据:

>db.col3.insert({title: 'MongoDB 文档', 
    description: 'MongoDB 是一个 Nosql 数据库',
    url: 'https://www.mongodb.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
通过 update() 方法来更新title:

>db.col3.update({'title':'MongoDB 文档},{$set:{'title':'MongoDB 学习'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "title" : "MongoDB 学习",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "url": 'https://www.mongodb.com',
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
如果要修改多条相同的文档,则需要设置 multi 参数为 true或1
>db.col3.update({'title':'MongoDB 文档},{$set:{'title':'MongoDB 学习'}},{multi:true})

(8)save() 方法通过传入的文档来替换已有文档,语法格式:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

document : 文档数据。

writeConcern :可选,抛出异常的级别。


通过 save()方法来替换已有文档


>db.col3.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB 学习文档",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "url" : "https://www.mongodb.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})
查看替换后的数据

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB 学习文档",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "url": 'https://www.mongodb.com',
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值