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学习笔记(一)--基础的更多相关文章

  1. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  2. MongoDB学习笔记(四)--索引 && 性能优化

    索引                                                                                             基础索引 ...

  3. MongoDB学习笔记(二)--Capped集合 && GridFS存储文件

    Capped集合                                                            Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...

  4. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  5. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  6. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  7. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  8. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  9. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

  10. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

随机推荐

  1. awk 基本函数用法

    gsub函数有点类似于sed查找和替换.它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行.第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为 ...

  2. jQuery事件和动画

    1.toggle事件 <!DOCTYPE html>   <html>   <head lang="en">   <meta charse ...

  3. Qt Quick快速入门之qml布局

    Qml里面布局主要有两种,锚点布局.Grid布局. 锚点布局使用anchors附件属性将一个元素的边定位到另一个元素的边,从而确定元素的位置和大小.下面是示例 import QtQuick 2.3 i ...

  4. [BZOJ5298][CQOI2018]交错序列(DP+矩阵乘法)

    https://blog.csdn.net/dream_maker_yk/article/details/80377490 斯特林数有时并没有用. #include<cstdio> #in ...

  5. 【Dijkstra】POJ1062-昂贵的聘礼

    由于物品编号从1开始,我们假定0也是一个物品作为起点,它到其它物品的距离就是各个物品的原始价值.开始时,如果两种物品主人的等级限制M在规定范围以内,且j能用i替换,则将优惠价格视作从i到j的一条权值为 ...

  6. 转 TCP/IP的三次握手与四次挥手详解

    TCP((Transmission Control Protocol)传输控制协议,是一个面向连接的协议.在运用此协议进行数据传输前都会进行连接的建立工作(三次握手):当数据传输完毕,连接的双方都会通 ...

  7. 20162318 2018-2019-2《网络对抗技术》Exp1 PC平台逆向破解

    一.实验目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getS ...

  8. Kibana安装及使用说明

    Kibana安装及使用说明 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据. 官方地址:https://www. ...

  9. Set常用子类特点

    HashSet:       重写   hashCode和equals方法                                        特点:无序,唯一      底层结构是:    ...

  10. IntelliJ IDEA使用教程三 SVN的集成与使用

    注意: 虽然IDEA已经集成了svn客户端,但还是习惯使用第三方svn客户端,比如: TortoiseSVN. 就是因为使用的是第三方客户端,所以和IDEA集成的时候就出现了一个特别大的坑,因为svn ...