<?php
    /*
     *
     *
     * nosql总结:
     * 1.shell的基本操作:
     * 创建/读取/更新和删除(CRUD)
     * insert 函数添加一个文档到集合里面!例如,假设要存储一博客文章:首先要创建一个局部变量post,内容是代表文档的Javascript对象!里面会有"title","content"和"data"(发表日期)几个键!
     * >post={"title":"My Blog Post",
     * ......"content":"Here's my blog post",
     * ......"date" :new Date()}
     * {
     *    title:"My Blog Post",
     *    "content":"Here's my blog post",
     *    "data":"日期"
     * }    
     * db.blog.insert(post)
     * 这个文章已经被存入了blog数据库了!
     * 2.查看文件.find()
     * db.blog.find()
     * {
     *    
     * }
     * 读取:find会返回集合里面所有的文档!如果只是要查看一个文档,可以使用findOne;
     * db.blog.findOne(){
     *
     * }
     * find和findOne可以接受查询文档形式的限定条件!这将通过查询限制匹配的文档!使用find时,shell自动显示最多20个匹配文档,但可以获取更多的文档!
     *
     * 更新:
     * 如果要更新博客,可以使用update的使用:
     * update接受(至少两个参数),第一个是要更新文档的限定条件,第二个是更新的文档,假设决定我们先前写的文章增加评论的内容,要加入一个新的键,对应的值就是存放评论的数组
     *
     * 第一步修改变量post,增加comments键:
     * >post.comments=[]
     * [ ]
     * 然后执行updata操作,用新版本的文档替换标题为"My Blog Post"的文章
     * db.blog.updata({title:"My Blog Post"},post)
     *
     * 删除:
     * remove 用来从数据库中永久的删除文档!在不使用参数进行调用的情况下,他会删除一个集合内的所有的文档,他可以接受一个文档以指定限定条件,
     * >db.blog.remove({title:"My Blog Post"})
     *
     *
     * 数据类型:
     * MongoDB在保留JSON基本的键/值对特性的基础上,添加了其他一些数据类型!在不同的编程语言下这些类型的表示有差异!
     * null
     * 用于表示空值或者是不存在的字段
     * 布尔型:有两个值true和false
     *
     * 32位整数
     *
     * 64位整数
     *
     * 64位浮点数
     *
     * 字符串
     *
     * 符号
     * shell不支持这种类型!
     * 对象id
     *
     * 日期类型:{"x":new Date()}
     *
     * 未定义的类型:
     * {"x":undefinded}
     *
     * 内嵌文档:文档可以包含别的文档,也可以作为值嵌入到父文档中:
     * {"x":{"foo":"bar"}}
     *
     * 数组:
     * {
     *    "name":"John Doe",
     *    "address":{
     *        "street":"123 Park Street",
     *        "city":"Anytown",
     *        "state":"NY"
     *    }
     * }
     * 合理的使用内嵌文档可以让处理数据的方式!并能"深入"其中构建索引,执行查询,或者更新!
     * 在MongoDB中可以将地址文档直接嵌入人员文档中,使用得当的话,内嵌文档会使信息表示得更加自然(通常也会高效)
     *
     * 但是这样做也有坏处,因为MongoDB会存储更多复杂的数据,这样是反规范化的,如果在关系数据库中"address"在一个i独立的表中,要修复地址中的拼写错误!当我们对"people"和"address"执行连接操作的时候,每一个使用这个地址的人的信息都会得到更新!但是在MongoDB中,则需要在每个人的文档中修正拼写错误!
     *
     * 要删除文档:
     * db.blog.remove()
     * db.mailing.list.remove({"opt-out":true})
     * 上述命令会删除users集合中的所有的文档,但不会删除集合本身,原有的索引也会保留
     * remove函数会接受一个查询文档作为可选参数,给定参数以后,只有符合条件的文档才会被删除!
     * db.mailing.list.remove({"opt-out":true})
     * 删除数据是永久性的,不能撤销,也不能恢复
     *
     *
     * 更新文档:
     * 文档存入数据库以后,就可以使用update方法来修改它!update有两个参数,一个是查询文档,用来找出要更新的文档,另一个是修改器文档,描述找到的文档做哪些更改!
     * 更新操作是原子的:如果是两个更新同时发生,先到达服务器的先执行,接着执行另外一个,所以,互相有冲突的更新可以火速传递,并不会相互干扰,最后的更新会取得"胜利"
     *
     * 使用修改器:通常文档只会有一部分要更新!利用原子的:"更新修改器",可以使得这种部分更新极为高效!更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加或者删除键,还可能是操作数组或者内嵌文档!
     *
     * $set甚至可以修改键的数据类型!
     * $set修改器入门,$set用来指定一个键的值!如果这个键不存在,则创建他!这对更新模式或者增加用户定义键非常方便!甚至可以更改数据类型!
     *
     *+-------------------------------------------------------------------------------------------------+

* $inc修改器用来增加已有键的值!或者在键不存在的时候创建一个键,对于分析数据/因果关系,投票或者其他有变化数值的地方,使用这个都会很方便!
     *
     *  $inc和$set的用法类似,就是专门来增加(和减少)数字的!
     *  $inc只能用于整数/长整数或双精度浮点数!要是在用在其他类型的数据上就会导致操作失败!
     *  其中包括很多语言会自动转换成数字的类型!例如null/布尔型或数字构成的字符串!
     *
     *
     *
     *+-------------------------------------------------------------------------------------------------+
     * 数组修改器:数组是常用且非常有用的数据结构!他们不仅仅是可通过索引进行引用的列表,并且还可以作为集合来用
     * 数组操作,顾名思义,只能用在值为数组的键上,例如不能对整数进行push也不能进行pop,
     *
     * 修改器速度:
     *
     * upsert是一种特殊的更新!要是没有文档符合更新条件,就会以这个条件和更新文档作为基础来创建一个新的文档,如果找到了匹配的文档,则正常更新!要是没有文档符合更细的条件,那么就会以这个条件和更新文档为基础创建一个i额新的文档,

转载于:https://www.cnblogs.com/sgsheg/archive/2012/09/21/2696681.html

nosql笔记1_早前的时候相关推荐

  1. 很多人将元宇宙与早前的区块链等转瞬即逝的风口作对比

    文/孟永辉 一夜之间,元宇宙火了.从表面上看,这是始料未及的,并且很多人将它看成是一个由资本触发的存在.正是因为如此,所以,人们对元宇宙的看法才出现了两极分化的局面.对于元宇宙看中的人,会对它推崇有加 ...

  2. 霹雳吧啦wz学习笔记1_卷积神经网络

    霹雳吧啦wz学习笔记1_卷积神经网络 全连接层: 全连接层就是由许许多多的神经元共同连接而得来的 卷积层: 卷积就是一个滑动窗口在我们的特征图上进行滑动并计算 卷积的目的:进行图像特征提取 卷积核的c ...

  3. 录像中那个距离他们停泊的港口不远的武汉玛歌堡服饰有限公司商场正是早前反追踪信号捕获到的坐标所在

    录像中那个距离他们停泊的港口不远的武汉玛歌堡服饰有限公司商场正是早前反追踪信号捕获到的坐标所在 李吵船长带了两个不知来路的黑衣骗子到船坞找上一凡,但两边的人才开始聊了两句,现场气氛却已经变得糟糕之极, ...

  4. OrangeS操作系统笔记1_环境的配置与第一个系统

    OrangeS操作系统笔记1_环境的配置与第一个系统 前言 开始学习Orange's:一个操作系统的实现,记录并总结一下学习中遇到的一些问题,由于我汇编基础几乎为0,对计算机也不是很了解,所以写的这些 ...

  5. 特斯拉盘初大跌5.61% 早前推出基础款Model 3

    新浪科技讯 北京时间3月1日晚间消息,美股盘初,截至22:35分,特斯拉大跌5.61%.早前特斯拉推出基础款Model 3,此外马斯克宣布特斯拉或将再次裁员.

  6. 早前报道:泛鑫保险美女高管携款5亿元潜逃海外

    新华视点:[中国警方与斐济执法部门合作抓获涉嫌经济犯罪重大逃犯陈怡]公安部19日晚通报,在我驻斐济使馆的大力支持下,中国警方与斐济执法部门通力合作,日前在斐济成功抓获涉嫌经济犯罪的上海泛鑫保险代理有限 ...

  7. 【现代机器人学】学习笔记三:前向运动学(Forward Kinematics)

    这节的内容比较简单,主要配合习题来看. 在掌握方法以后,对常规的有许多移动副或转动副结构组成的机械臂,计算正向运动学则非常简单. 齐次变换法: 这种方法的特点是,只研究当前关节和上一个关节的旋转平移, ...

  8. 《OpenCV3编程入门》学习笔记2 启程前的认知准备

    第2章 启程前的认知准备 2.1 OpenCV 官方例程引导与赏析 位置:-\opencv\sources\samples\cpp 2.1.1彩色目标跟踪:Camshift (Continuously ...

  9. Java笔记-EasyCaptcha在前后端分离项目的使用

    官方地址: https://github.com/whvcse/EasyCaptcha 在此膜拜下. 官方上已经有了非常详细的说明,下面我做个笔记,方便以后进行查阅,毕竟少花几分钟上手,可以多看几分钟 ...

  10. 算法导论学习笔记1_循环不变式

    循环不变式 1. 循环不变式和数学归纳法 2. 循环不变式的三条性质 3. 利用循环不变式分析插入排序 4. 练习题 2.1.3 1. 循环不变式和数学归纳法 在数学中,数学归纳法常用于证明给定命题在 ...

最新文章

  1. 编译mgiza的准备
  2. Qt QLabel 显示gif动图
  3. 7.SpringMVC 配置式开发-ModelAndView和视图解析器
  4. Visual Tracking:运行ECO模型
  5. 图像处理包magick - R版的PS - 学习笔记
  6. DBA生存警示:防范频发的数据误删除操作
  7. C语言是作为一个程序员必须了解的,那么你知道怎样学习C语言吗?
  8. java-opencv 米粒数_Python opencv学习音符的米粒数,返回每个米粒的位置面积和总米粒数的平均面积,pythonopencv,笔记,之数,并,一个,及,个数...
  9. Win10完全卸载MySQL
  10. 网上FLAC3D学习笔记
  11. 推土机(快排)荷兰国旗思路
  12. Transformer如何用于视频?最新「视频Transformer」2022综述
  13. PHP面试题(附答案)
  14. KVM安装/libvirt没有启动成功找不到/var/run/libvirt/libvirt-sock
  15. JetBrains出品,一款好用到爆的数据库工具,惊艳到了,西安java开发视频
  16. Grafana 的安装和配置
  17. FileNotFoundError: [Errno 2] No such file or directory:‘image.jpg’
  18. div内容文字自适应
  19. 如何使用ABBYY FineReader 14签署PDF文档
  20. 60天引爆学习力总结

热门文章

  1. Delphi 与 DirectX 之 DelphiX(63): TDIB.DoPosterize();
  2. Visual Studio Code 调试 React Native (RN) 步骤 Mac版
  3. 【转载】文件上传命令rz和下载命令sz的安装
  4. 2019.03.21 创建表 一对多,一对一,多对多。
  5. 机器学习笔记(1)决策树
  6. 通过导航栏切换页面动画
  7. JAVA基础-XML的解析
  8. 计划任务,机器码与注册码,Web服务
  9. Android-HelloWorld
  10. S3C2440 LCD驱动(FrameBuffer)实例开发一(转)