【MongoDB学习笔记8】深入MongoDB的更新(update)操作:修改器$set
2015-01-02 12:09
399 查看
MongoDB中文档存入数据库后用update方法更新文档,update方法有两个参数,例如
update(args1,args2)
args1是指查询文档的条件;
args2是指对查询到的文档进行什么样的修改;
一、文档替换
二、使用修改器
1.$set修改器
$set用来指定一个字段的值,如果字段不存在就创建;
修改comments的值为数组:
删除comments的值:
2.修改内嵌文档
update(args1,args2)
args1是指查询文档的条件;
args2是指对查询到的文档进行什么样的修改;
一、文档替换
> joe1= db.post.findOne({"age":20}) { "_id" : ObjectId("54a530c3ff0df3732bac1680"), "id" : 1, "name" : "joe", "age" : 20 } > joe1.age=21 21 > db.post.update({"id":1},joe1) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) >修改后的结果:
> joe1= db.post.findOne({"age":21}) { "_id" : ObjectId("54a530c3ff0df3732bac1680"), "id" : 1, "name" : "joe", "age" : 21 } >
二、使用修改器
1.$set修改器
$set用来指定一个字段的值,如果字段不存在就创建;
> db.post.findOne() { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65 }增加comments的键:
> db.post.update({"id":0}, ... {$set:{"comments":"i love you"}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.post.findOne() { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65, "comments" : "i love you" } >修改comments键的值:
> db.post.update({"id":0}, {$set:{"comments":"i don't love you"}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.post.findOne() { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65, "comments" : "i don't love you" } >
修改comments的值为数组:
> db.post.update({"id":0}, {$set:{"comments":["i love you","or","i don't love you"]}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.post.findOne({"id":0}) { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65, "comments" : [ "i love you", "or", "i don't love you" ] } >
删除comments的值:
> db.post.update({"id":0}, {$unset:{"comments":1}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.post.findOne({"id":0}) { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65 } >
2.修改内嵌文档
> db.post.findOne({"id":0}) { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65, "comments" : { "1" : 1, "2" : 2, "3" : 3 } } > db.post.update({"id":0}, {$set:{"comments.1":4}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.post.findOne({"id":0}) { "_id" : ObjectId("54a530c3ff0df3732bac167f"), "id" : 0, "name" : "joe", "age" : 65, "comments" : { "1" : 4, "2" : 2, "3" : 3 } } >
相关文章推荐
- 【MongoDB学习笔记9】深入MongoDB的更新(update)操作:修改器$inc
- 【MongoDB学习笔记12】深入MongoDB的更新(update)操作:数组修改
- 【MongoDB学习笔记13】MongoDB的更新(update)操作进阶
- SVN学习笔记8 -- SVN客户端命令行操作 -- update 更新
- 学习Mongodb笔记(三)——文档更新中高效的修改器
- 【MongoDB学习笔记7】深入MongoDB的删除(remove/drop)操作
- [Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作
- Python 验证MongoDB中$set、$inc、$push几种修改器操作的速度
- MongoDB 学习笔记(四)C# 操作MongoDB
- SMP3.0学习笔记之八 使用Kapsel Update插件实现移动应用的自动更新
- MongoDB 学习笔记(python操作)
- MongoDB笔记三——更新操作
- MongoDB 学习笔记(python操作)
- MongoDB 学习笔记(三) MongoDB (replica set) 集群配置
- MongoDB 学习笔记(python操作)
- 使用update更新MongoDB文档应注意的问题,即使使用了$inc\$set等
- mongodb_修改器($inc/$set/$unset/$push/$pop/upsert......)(转并学习)
- php操作mongodb的update只更新一条解决方法。
- [转载]MongoDB学习笔记(五) MongoDB文件存取操作