>> 创建:
·db.foo.insert({"bar":"baz"}) //如果文档中没有"_id"键会自动增加一个
·db.foo.batchInsert([{"_id":0},{"_id":2}])
 //只适用将多个文档插入到一个集合,不能单次请求中多个文档批量插入多个集合中
 // 当前Mongo能接收最大的消息长度是48M
 
# 插入校验
·每个文档必须小于16M (Object.bsonsize(doc)查看bson大小)
 
>> 删除:
·db.foo.remove()//删除所有集合中的文档,但是不删除集合本身
·db.foo.remove({"opt":true})
·db.foo.drop()//删除整个集合(慎用) >> 更新:
# 基本更新:
·db.foo.update() //更新的过程中必须保证同一个文档键不能重复 # 修改器:
·db.foo.update({"game":"game"},{"$inc":{"score":1000}}) //$inc 是对某个字段的值进行增加和减少操作,适用于数值类型
·db.foo.update({"_id":1},{"$set":{"fav":"fav"}}) //修改非数值类型的字段的值
·db.foo.update({"_id":1},{"$unset":{"fav":1}}) //删除这个键
+ 数组修改器: + 添加元素:
·db.foo.update({"title":"blog"},{"$push":{"comments":"comments"}}) //在文档中添加一个元素
·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5]}})//添加多个值
·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5],"$slice":-10}})
 //设置添加元素的数量,"$slice"值为负整数
·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5],"$slice":-10,"$sort":{"rating":-1}}})
//"$slice","$sort"与"$push"配合使用,必须使用"$each" # 数组操作:
·db.papers.update({{"authors":{"$ne":"richie"}},{"$push":{"authors":richie}}}) //$ne先查询数组中是否存在这个元素
·db.users.update({"_id":1},{"$addToSet":{"emails":"joe@gmial.com"}}) //避免插入重复的值
·db.users.update({"_id":1},{"$addToSet":{"emails":{"$each":["joe@gmial.com","job@gmial.com"]}}}) ·db.blog.update({"post":post_id},{"$inc":{"comments.0.votes":1}})//基于数组的下标位置修改
·db.blog.update({"commetns.author":"john"},{"$set":{"comments.$.author":"jim"}}) # 删除元素:
·db.lists.update{{},{"$pull":{"todo":"laundry"}}} //指定条件删除某个元素,会将所有匹配的值删除
·{"$pop":{"key":1}}//从数组末尾删除
·{"$pop":{"key":-1}} //从数组头部删除 >> 特殊更新:
·db.blog.update({"url":"/blog"},{"$inc":{"pageviews":1},true})//true如果没有找到更新条件的文档则创建
·db.users.update({},{"$setOnInsert":{"createdAt":new Date()},true}) //创建时赋值,之后所有的更新操作都不会改变 # save(doc)函数:如果文档存在就更新文档,如果不存在就创建 >> 更新多个文档:??
·findAndModify => 写入安全: >> 查询
# 基本查询:
·db.users.find({},{"username":1,"email":1,"_id": 0}) //指定某个字段显示 # 带条件的查询:
内层文档:"$lt"、"lte"、"$gt"、"gte" 对应<,<= ,> ,>=
外层文档:"$and","$or","$nor"
·db.users.find({"registered":{"$lt":start}})
·db.users.find({"username":{"$ne":"joe"}}) 查询所有名字不为joe的用户 ·db.raffle.find({"ticket":{"$in":[1,2,3]}}) //一个键与多个值匹配
·db.raffle.find({"$or":[{"ticket":{"$in":[1,3,5]}},{"winner":true}]}) //or查询 ·db.users.find({"id_num":{"$mod":[5,1]}})
·db.users.find({"id_num":{"$not":{"$mod":[5,1]}}}) => 一个键可以任意组合多个条件,但是一个键不能对应多个更新修改器 # 特定类型查询:
·db.c.find({"z":{"$in":[null],"$exists":true}}) //null查询
·db.users.find({"name":/joe/i})//正则表达式查询 # 数组查询:
·db.food.find({"friut":{$all:["apple","banana"]}})
·精确匹配对于数组依赖顺序

MongoDB: CURD操作的更多相关文章

  1. MongoDB的安装及CURD操作

    MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...

  2. windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

  3. MongoDB的一些CURD操作

    MongoDB的一些增删改查命令操作: 官方文档参考  https://docs.mongodb.com/manual/reference/method/ https://docs.mongodb.c ...

  4. MongoDB安装、CURD操作、使用场景分析总结(1)

    NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...

  5. MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)

    回到目录 我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋 ...

  6. MongoDB查询操作限制返回字段的方法

    这篇文章主要介绍了MongoDB查询操作限制返回字段的方法,需要的朋友可以参考下   映射(projection )声明用来限制所有查询匹配文档的返回字段.projection以文档的形式列举结果集中 ...

  7. Laravel框架数据库CURD操作、连贯操作使用方法

    Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍.   Laravel是一套简洁.优雅的PHP Web开 ...

  8. php对xml文件进行CURD操作

    XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: ...

  9. EasyUI-datagrid数据展示+MongoDB数据操作

    使用EasyUI-datagrid进行数据展示:进行添加,修改,删除操作逻辑代码,数据源来自MongoDB. 一.新建SiteInfo控制器,添加Index页面:http://www.cnblogs. ...

随机推荐

  1. Collections和Arrays常用方法

    Collections:常见方法: 1, 对list进行二分查找: 前提该集合一定要有序. int binarySearch(list,key); //必须根据元素自然顺序对列表进行升级排序 //要求 ...

  2. 使Eclipse符合Java编程规范

    编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...

  3. 更好的逐帧动画函数 — requestAnimationFrame 简介

    本文将会简单讲讲 requestAnimationFrame 函数的用法,与 setTimeout/setInterval 的区别和联系,以及当标签页隐藏时 requestAnimationFrame ...

  4. Github优秀java项目集合(中文版) - 涉及java所有的知识体系

    Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...

  5. [PGM] I-map和D-separation

    之前在概率图模型对概率图模型做了简要的介绍.此处介绍有向图模型中几个常常提到的概念,之前参考的多为英文资料,本文参考的是<概率图模型-原理与技术的>中译版本.很新的书,纸质很好,翻译没有很 ...

  6. 乱码电路(Garbled circuits)

    乱码电路(Garbled circuits)是Andrew Yao教授在上世纪80年代发明的一种很聪明的技术.它可以让两个人针对某个算式来计算答案,而不需要知道他们在计算式所输入的数字. 举个例子说, ...

  7. MVC认知路【点点滴滴支离破碎】【一】----新建数据库

    1.App_Data文件夹创建[SQL Server Compact Local Database *]数据库 2.添加链接字符串<add name="MovieDBContext&q ...

  8. linux基础-附件1 linux系统启动流程

    附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...

  9. [Bundling and Minification ] 二、绑定的作用

    本篇接上一篇[Bundling and Minification ] 一.如何绑定 Bundling的作用有二,一是合并文件减少资源请求的个数缩短资源请求的时间.二是自动更新到最新js或者css,当合 ...

  10. Java--笔记(1)

    1.Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充.AWT 是基于本地方法的C/C++程序, ...