MongoDB修改器的使用1
为什么要使用修改器?
通常我们只会修改文档的一部分,这时候更新整个文档就显得很麻烦,通常是通过原子性的更新修改器来完成。
1."$set"修改器
"$set"用来指定某个字段,如果不存在,则创建。这对部分更新或者添加来说就非常方便了。
如:
step1:往users数据库长如一条数据,通过JavaScript来完成:
var logs={name:"joe",age:30,sex:"female",location:"Wisconsin"}
logs
运行:
/* 1 */
{
"name" : "joe",
"age" : 30.0,
"sex" : "female",
"location" : "Wisconsin"
}
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来修改对应的内容。
MongoDB修改器的使用1的更多相关文章
- mongodb修改器
mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...
- mongodb修改器(转)
MongoDB 修改器 对文档中的某些字段进行更新 $inc 专门用来增加(或减少)数字的,只能用于整数,长整数或双精度浮点型的值$inc键的值必须为数字,不能使用字符串,数组或其他非数字的值如果键不 ...
- Mongodb更新数组$pull修饰符 (mongodb 修改器($inc/$set/$unset/$push/$pop/upsert))
mongodb 修改器($inc/$set/$unset/$push/$pop/upsert)) https://www.jb51.net/article/112588.htm http://bl ...
- MongoDB修改器总结
1"$set":用来制定一个字段值,若不存在,则创建: 一般用于点加一个字段 db.users.update({name:"joe"},{" ...
- mongoDB 修改器()
-----------------------------------2016-5-26 15:56:57-- source:[1],MongoDB更新操作符
- MongoDB修改器的使用2
1."$inc"的使用 主要用来增加数值,比如网站的访问量,点击量,流量等 db.games.insert({game:"pinball",user:" ...
- mongodb的修改器
在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以 ...
- [转载]MongoDB的$inc修改器
MongoDB的$inc修改器相当于编程语言中的 “+=”“$inc”只能用于操作数值类型的数据,包括整数.长整数和双精度浮点数,用于其他类型的数据会导致操作失败. >db.users.find ...
- MongoDB之修改器
MongoDB之修改器 $set 简单粗暴 {name: valuel} 直接将key对应的值赋值给value. db.xxoo.insert({}, {set: {key: value}}) / ...
随机推荐
- BOOST1.54简化编译
1.设置环境变量 BOOST_ROOT E:\Projects\00.CODE.SDK\boost_1_54_0 2.运行bootstrap.bat 3.运行: bjam install --tool ...
- 【算法与数据结构】冒泡、插入、归并、堆排序、快速排序的Java实现代码
详细过程就不表了,看代码吧 import java.util.Arrays; public class Sort { static int swapTimes=0; public static voi ...
- VS2013安装部署项目
打开vs2013/2015菜单扩展和更新,查找Installer,找到Microsoft Visual Studio 2015 Installer Projects并下载安装. 安装之后模板中即有“安 ...
- XAF How to show custom forms and controls in XAF (Example)
XAF How to show custom forms and controls in XAF (Example) https://www.devexpress.com/Support/Center ...
- react-router+webpack+gulp路由实例
背景:新项目要开始了,有一种想要在新项目中使用react的冲动,应该也是一个单页面的应用,单页应用就涉及到一个路由的问题.于是最近在网上找了蛮多关于react-router的文章,也遇到了许多的坑,经 ...
- JavaScript 基础第十天
学习总结 1定时器 ①.setTimeout() // 间隔多长时间执行一次(会返回一个数字型的标识) ②.setInterval() // 间隔多长时间执行,是不断地执行. ③.clearTimeo ...
- C# 调用网易“易盾” Web API
易盾是网易推出的反垃圾云服务,最近准备试用一下,但发现api文档中只提供了Java, Python, PHP的示例代码,却没有C#的示例代码,于是参照Java示例代码用C#实现了一下. Java中用H ...
- C#实现 word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- Homework 3
1. 是否需要有代码规范? 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. (反对) 我是个艺术家,手艺人,我有自己的规范和原则. (反对) 规范不能强求一律, ...
- ThoughtWorks持续集成平台GO开源了
ThoughtWorks 持续集成平台Go最近宣布开源了.其基于Apache 2.0 开源协议. Go下载地址为http://www.go.cd/download/. 下面是几张来自官方的视图: GO ...