mongoDB 文档更新
作者:网络转载 发布时间:[ 2016/10/25 10:05:31 ] 推荐标签:数据库 mongoDB
> db.users.find({"favorites.artist": "Picasso"},
... {finished:0,points:0,badges:0}).pretty()
//查询favorites.artist值为Pisanello的文档
> db.users.find({"favorites.artist": "Pisanello"},
... {finished:0,points:0,badges:0}).pretty()
{
"_id" : 1,
"name" : "sue",
"age" : 19, //Author : Leshami
"type" : 3, //Blog : http://blog.csdn.net/leshami
"status" : "P",
"favorites" : {
"artist" : "Pisanello",
"food" : "pie"
},
"lastModified" : ISODate("2016-09-30T08:00:47.826Z")
}
{
"_id" : 6,
"name" : "abc",
"age" : 43,
"type" : 3,
"status" : "A",
"favorites" : {
"food" : "pizza",
"artist" : "Pisanello"
},
"lastModified" : ISODate("2016-09-30T08:00:47.826Z")
}
3、db.collection.update()
//下面使用db.collection.update()方式更新
> db.users.update(
... { "favorites.artist": "Pisanello" },
... {
... $set: { "favorites.food": "pizza", type: 0, },
... $currentDate: { lastModified: true }
... }
... ) //此更新结果,如下行,nMatched为一个文档,nModified为1个文档,即仅更新一个文档
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) //等同于updateOne方法
> db.users.update(
... { "favorites.artist": "Pisanello" },
... {
... $set: { "favorites.food": "pizza", type: 0, },
... $currentDate: { lastModified: true }
... },
... { multi: true } //使用参数multi,且值为true
... ) //从返回的结果可知,更新文档数为2,即所有满足条件的文档都被更新
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 }) //等同于updateMany方法
//验证更新之后的结果
> db.users.find({"favorites.artist": "Pisanello"},
... {finished:0,points:0,badges:0}).pretty()
{
"_id" : 1,
"name" : "sue",
"age" : 19,
"type" : 0,
"status" : "P",
"favorites" : {
"artist" : "Pisanello",
"food" : "pizza"
},
"lastModified" : ISODate("2016-09-30T09:31:10.524Z")
}
{
"_id" : 6,
"name" : "abc",
"age" : 43,
"type" : 0,
"status" : "A",
"favorites" : {
"food" : "pizza",
"artist" : "Pisanello"
},
"lastModified" : ISODate("2016-09-30T09:31:10.524Z")
}
4、db.collection.replaceOne()
//替换前文档的内容(name:"abc")
> db.users.find({name:"abc"},{finished:0,points:0,badges:0}).pretty()
{
"_id" : 6,
"name" : "abc",
"age" : 43,
"type" : 1,
"status" : "A",
"favorites" : {
"food" : "pizza",
"artist" : "Picasso"
}
}
//下面使用db.collection.replaceOne()替换用户名为abc的文档,且替换了很多不同的键值
> db.users.replaceOne(
... { name: "abc" },
... { name: "amy", age: 34, type: 2, status: "P", favorites: { "artist": "Dali", food: "donuts" } }
... )
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } //这里提示有一个匹配,一个被更新
//验证替换后的结果
> db.users.find({name:"amy"},{finished:0,points:0,badges:0}).pretty()
{
"_id" : 6,
"name" : "amy",
"age" : 34,
"type" : 2,
"status" : "P",
"favorites" : {
"artist" : "Dali",
"food" : "donuts"
}
}
//使用db.collection.update方式可以实现相同的效果
> db.users.update(
... { name: "xyz" },
... { name: "mee", age: 25, type: 1, status: "A", favorites: { "artist": "Matisse", food: "mango" } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
三、小结
1、mongoDB文档更新有很多个不同的方法,传统的update,以及3.2版本之后的updateOne,updateMany
2、mongoDB文档替换也有很多个不通的方法,传统的update,以及3.2版本之后的replaceOnye,replaceMany
3、updateOne与updateMany是对update方法的扩展,update方法可以通过multi值为true或false来等同于updateMany以及updateOne
4、replaceOne与replaceMany也是对update方法的扩展,update方法可以通过multi值为true或false来等同于replaceMany以及replaceOne
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南