MongoDB学习笔记(一)--基础
Insert
MongoDB在执行插入时,首先会将插入的数据转换成BSON格式。然后MongoDB数据库会对BSON进行解剖,并检查是否存在_id建。
>doc = {
"_id" : 1,
"author" : "yyd",
"title" : "MongoDB Test",
"text" : "this is a test",
"tags" : [
"love",
"test"
],
"comments" : [
{
"author" : "yyd_guest",
"comment" : "yes"
},
{
"author" : "yyd_admin",
"comment" : "no"
}
]
}
> db.yyd.insert(doc);
Query
全部查找

返回除了 tags 字段外的所有字段

返回 tags = test 除了 comments 的所有列

返回 id=1 的 title 字段

- <, <=, >, >=

大于 $gt、小于 $lt、大于等于 $gte、小于等于 $lte
- $all
$all 操作类似$in 操作,但是不同的是,$all 操作要求数组里面的值全部被包含在返回的记录里面。

- $exists
$exists 操作检查一个字段是否存在。

$exists:true代表返回存在这个键的值。
$exists:false代表返回不存在这个键的值。
- $mod
> db.user.find("this._id%2==1");
> db.user.find({_id:{$mod:[2,1]}});
两句话一样的效果。
- $ne
$ne 意思是 not equal,不等于。

- $in
$in 操作类似于传统关系数据库中的 IN。

- $nin
$nin 跟$in 操作相反。
- $or

- $nor
$nor 跟$or 相反。
- $size
$size 操作将会查询数组长度等于输入参数的数组。

- skip
跳过前 2 条记录。

- limit
每页返回 3 条记录

- sort()
sort()方法对返回记录集按照指定字段进行排序返回,1 表示升序,-1 表示降序。

- count()
count()方法返回查询记录的总数目。

Remove

Update
- update()
db.collection.update( criteria, objNew, upsert, multi )
参数说明:
Criteria:用于设置查询条件的对象
Objnew:用于设置更新内容的对象
Upsert:如果记录已经存在,更新它,否则新增一个记录
Multi:如果有多个符合条件的记录,全部更新
注意:默认情况下,只会更新第一个符合条件的记录
- save()
如果存在更新它,如果不存在,新增记录。

- $inc
增加1,对int等有效。
对一个_id=3 的 user 的年龄进行加 1,两种方法。


- $set
{ $set : { field : value } }
把 field 的值设置成 value,当 field 不存在时,增加一个字段,类似 SQL 的 set 操作,value 支持所有类型。
- $unset
{ $unset : { field : 1} }
删除给定的字段 field。
- $push
{ $push : { field : value } }
如果 filed 是一个已经存在的数组,那么把 value 追加给 field;
如果 field 原来不存在,那么新增 field 字段,把 value 的值赋给 field;
如果 field 存在,但是不是一个数组,将会出错。
- $pushAll
{ $pushAll : { field : value_array } }
功能同$push,只是这里的 value 是数组,相当于对数组里的每一个值进行$push操作。
- $addToSet
{ $addToSet : { field : value } }
如果 filed 是一个已经存在的数组,并且 value 不在其中,那么把 value 加入到数组;
如果 filed 不存在,那么把 value 当成一个数组形式赋给 field;$pop
如果 field 是一个已经存在的非数组类型,那么将会报错。
- $pop
{ $pop : { field : 1 } }
删除数组中最后一个元素
{ $pop : { field : -1 } }
删除数组中第一个元素
- $pull
{ $pull : { field : _value } }
如果 field 是一个数组,那么删除符合_value 检索条件的记录;
如果 field 是一个已经存在的非数组,那么会报错。
- $pullAll
{ $pullAll : { field : value_array } }
- $rename
{ $rename : { old_field_name : new_field_name }
重命名指定的字段名称。
转载请注明出处:http://www.cnblogs.com/yydcdut/p/3557414.html
MongoDB学习笔记(一)--基础的更多相关文章
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- MongoDB学习笔记(四)--索引 && 性能优化
索引 基础索引 ...
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
Capped集合 Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- MongoDB 学习笔记(原创)
MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...
- bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...
- MongoDB学习笔记(转)
MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...
随机推荐
- 一台电脑如何安装多个版本的JDK
1 . 准备两个版本的jdk我的两个jdk路径为: C:\Program Files\Java\jdk1.6.0_43 C:\Program Files\Java\jdk1.8.0_25 2 . ...
- SQL语句之 知识补充
SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELI ...
- mmcrfs
mmcrfs command Creates a GPFS™ file system. Synopsis mmcrfs Device {"DiskDesc[;DiskDesc...]&quo ...
- 决策树算法(C4.5)
ID3具有一定的局限性,即信息增益倾向于选择取值比较多的特征(特征越多,条件熵(特征划分后的类别变量的熵)越小,信息增量就越大),C4.5通过选择最大的信息增益率 gain ratio 来选择节点可以 ...
- eventbus 视频
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 尚硅谷Android视频<EventBus>_腾讯课堂
- 重庆市队选拔 CQOI2015 解题报告
文章链接:http://www.cnblogs.com/Asm-Definer/p/4434601.html 题目链接:http://pan.baidu.com/s/1mgxIKli 官方数据:htt ...
- Topcoder SRM 643 Div1 250<peter_pan>
Topcoder SRM 643 Div1 250 Problem 给一个整数N,再给一个vector<long long>v; N可以表示成若干个素数的乘积,N=p0*p1*p2*... ...
- Python学习笔记(六)—元组的操作
元祖也是一个列表,它和list的区别是元祖里面的元素无法修改: 如果元祖里面只有一个元素的话,那么你必须在这个元素后边加上逗号,这样才是元祖的类型:否则类型会显示其他类型 元组的定义: 元祖中的方法: ...
- 重温PHP面向对象的三大特性
PHP面向对象的三大特性:封装性.继承性.多态性. 1. 封装性: 也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法. 于是开发人员 ...
- HDU 4707 Pet (水题)
Pet Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...