博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB修改器的使用1
阅读量:4634 次
发布时间:2019-06-09

本文共 2444 字,大约阅读时间需要 8 分钟。

为什么要使用修改器? 

   通常我们只会修改文档的一部分,这时候更新整个文档就显得很麻烦,通常是通过原子性的更新修改器来完成。

1."$set"修改器

   "$set"用来指定某个字段,如果不存在,则创建。这对部分更新或者添加来说就非常方便了。

如:

 step1:往users数据库长如一条数据,通过JavaScript来完成:

   var logs={name:"joe",age:30,sex:"female",location:"Wisconsin"}

   logs

 运行:

1 /* 1 */2 {3     "name" : "joe",4     "age" : 30.0,5     "sex" : "female",6     "location" : "Wisconsin"7 }

step2:放入users数据库

  db.users.insert(logs)

查询结果:

  db.users.find()

/* 1 */{    "_id" : ObjectId("575a2acfbc9fb3f12145a004"),    "name" : "joe",    "age" : 30.0,    "sex" : "female",    "location" : "Wisconsin"}

step3:加入要插入一条喜欢的书籍:

db.users.update({name:"joe"},{"$set":{"favorite book":"War and Peace"}})

然后查询db.users.find()

/* 1 */{    "_id" : ObjectId("575a2acfbc9fb3f12145a004"),    "name" : "joe",    "age" : 30.0,    "sex" : "female",    "location" : "Wisconsin",    "favorite book" : "War and Peace"}

从结果总可以看出,数据中添加了一条favorite book字段,达到了我们想要的结果^_^;

step4:如果joe喜欢另一本书,继续来看"$set"如何大发神威;

 

/* 1 */{    "_id" : ObjectId("575a2acfbc9fb3f12145a004"),    "name" : "joe",    "age" : 30.0,    "sex" : "female",    "location" : "Wisconsin",    "favorite book" : "forrest gump"}

 

"$Set"还可以修改键的类型,比如喜欢的是好多书,就可以放在数组中。

如下:

 db.users.update({name:"joe"},{"$set":{"favorite book":["cat's Cradle","Foundation Trilogy","Ender's Game"]}})

/* 1 */{    "_id" : ObjectId("575a2acfbc9fb3f12145a004"),    "name" : "joe",    "age" : 30.0,    "sex" : "female",    "location" : "Wisconsin",    "favorite book" : [         "cat's Cradle",         "Foundation Trilogy",         "Ender's Game"    ]}

还可以通过"$unset"来操作删除某个字段

db.users.update({name:"joe"},{"$unset":{"favorite book":1}})

/* 1 */{    "_id" : ObjectId("575a2acfbc9fb3f12145a004"),    "name" : "joe",    "age" : 30.0,    "sex" : "female",    "location" : "Wisconsin"}

这样就和最开始一样了。

"$set"还可以修改内嵌的文档

如:

var log={title:"A Blog Post",content:"...",author:{name:"joe",email:"joe@qq.com"}}

log
db.blog.posts.insert(log)
db.blog.posts.findOne()

/* 1 */{    "_id" : ObjectId("575a313fbc9fb3f12145a008"),    "title" : "A Blog Post",    "content" : "...",    "author" : {        "name" : "joe",        "email" : "joe@qq.com"    }}

db.blog.posts.update({"author.name":"joe"},{"$set":{"author.name":"joe Mather"}})

/* 1 */{    "_id" : ObjectId("575a313fbc9fb3f12145a008"),    "title" : "A Blog Post",    "content" : "...",    "author" : {        "name" : "joe Mather",        "email" : "joe@qq.com"    }}

总结:$开头的修改器都是通过主键key来修改对应的内容。

 

 

   

转载于:https://www.cnblogs.com/lwy19998273333/p/5573430.html

你可能感兴趣的文章
HDU 1693 Eat the Trees
查看>>
Bootstrap 栅格系统 理解与总结
查看>>
oracle的for和i++
查看>>
YML(2)yml 语法
查看>>
线段树专辑——pku 2886 Who Gets the Most Candies?
查看>>
求一个字符串中连续出现的次数最多的子串
查看>>
寒假作业pta3
查看>>
ubuntu使用记录
查看>>
面试题:查询连续出现的数字
查看>>
JS简单实现自定义右键菜单
查看>>
一个妹子图应用客户端源码
查看>>
day22_面向对象
查看>>
win10+Linux双系统安装及一些配置问题
查看>>
django-debug-toolbar使用指南
查看>>
2nd 四人小组项目的进一步分析
查看>>
http账户密码的截取
查看>>
LoadRunner中log的使用总结
查看>>
time 和 datetime 模块
查看>>
maven
查看>>
一.Timesten安装
查看>>