基本操作

增加

在MongoDB中通过db.collection.insert()来增加新的数据。

db.users.insert({username:"Jack",age:30})

操作完成之后会返回一条WriteResult对象,这个对象包含了操作的状态。

WriteResult({"nInserted" : 1 })

如果插入失败,WriteResult会包含错误信息。

通过 db.collection.find() 来查找所有插入的文档信息。

批量增加

db.collection.insert()支持批量操作。

可以先创建数组,然后一次性插入。

var users=
[
{
username:"Frank",
age:20
},
{
username:"Bob",
age:22
},
{
username:"Lucy",
age:21
}
] db.users.insert(users)

操作完成之后,会返回一个BulkWriteResult对象,来反馈本次操作的相关信息。

除了以上这种操作,MongoDB(2.6版本之后)还提供了另外一种批量操作Bulk()函数。

通过db.collection.initializeOrderedBulkOp(),初始化一个Bulk操作块。

var bulk = db.users.initializeUnorderedBulkOp();

bulk.insert(
{
username:"James",
age:30
}
);
bulk.insert(
{
username:"Wade",
age:31
}
); //commit operation
bulk.execute()

同样,这个操作也会返回 BulkWriteResult 对象反馈相关信息。

查询操作

通过db.collection.find() 可以查到集合下的所有数据。

db.users.find({})
db.users.find()

条件查询

db.users.find({age:10})

使用 $in 关键字选取符合后面列表条件的数据

db.users.find( { age: { $in: [ 30, 20 ] } } )

多个条件

db.users.find( { age: 30, username: 'James' } )

当一个条件成立的时候,使用 $or 查询

db.users.find({
$or: [ { username: "James", age:30} ]
})

修改数据

通过update函数来更新数据,第一个参数去选取需要匹配的数据,然后用 $set 关键字,来更新需要更新的数据字段。最后使用 currentDate来修改这个数据的修改时间。

db.users.update(
{ age:20 },
{
$set:{
age:25
},
$currentDate : {lastModified:true}
}
)

操作会返回一个WriteResult对象来解释这次操作的状态。

更新一个嵌套的数据

db.doc.insert(
{
bookname:"Rework",
detail:{
model: "14Q3",
manufacturer: "XYZ Company"
}
}
) db.doc.update(
{ bookname:"Rework" },
{ $set:{"details.model": "14Q2"} }
)

操作会返回一个WriteResult对象来解释这次操作的状态。

默认情况下,MongoDB只会更新一条数据,如果更新多条数据,需要在更新是指定参数。

db.users.update(
{ age:20 },
{
$set:{
age:25
},
$currentDate : {lastModified:true}
},
{ multi: true }
)

替换数据

替换数据会替换文档中,除了_id字段之外的所有数据。

db.users.update(
{ name: "none" },
{
name:"Kids",
age:12
}
)

默认情况下,如果update方法没有匹配到任何数据,那么update方法就不会做任何事情。然而使用upsert关键字,那么如果没有匹配到数据,会自动新增一条新的数据到集合中。

db.users.update(
{ name:"one" },
{
name:"Kids",
age:12
},
{ upsert : true }
)

操作会返回一个WriteResult对象来解释这次操作的状态,这里会带有新的数据的id值。

删除数据

使用remove()函数删除所有的数据.

db.users.remove({})

remove()操作比drop()操作更加有效率。

按条件删除

db.users.remove({age:30})

只删除查找到的数据中得第一条数据。

db.users.remove({age:30},true)

有限查询

返回所有的字段

db.users.find({age:20})

返回指定的字段

db.users.find( { age : 20 }, { age:true, username:true } )

默认总是会有_id字段,除非自己特意指定

db.users.find( { age : 20 }, { age:true, username:true, _id:false } )

除去特定字段,全部返回

db.users.find( { age : 20 }, { age:false} )

MongoDB CRUD 操作手册的更多相关文章

  1. Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作

    2 Mongodb CRUD 操作 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mong ...

  2. MongoDB CRUD 操作

    crud是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删除(Delete)几个单词的首字母简写.crud主要被用在描述软件系统中数据库或者持久层的基本操 ...

  3. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  4. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  5. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  6. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  7. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  8. Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)

    一.简介 Spring Data  MongoDB 项目提供与MongoDB文档数据库的集成.Spring Data MongoDB POJO的关键功能区域为中心的模型与MongoDB的DBColle ...

  9. mongodb 数据操作CRUD

    链接到mongo 新建超级用户 上文中我们提到mongo用户库表管理.为了方便我们先新建一个root权限的用户. db.createUser({user:'dbadmin',pwd:'123456', ...

随机推荐

  1. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  2. nodejs进阶(5)—接收请求参数

    1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...

  3. SQL Server 2014 新特性——内存数据库

    SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...

  4. 简记用ArcGIS处理某项目需求中数据的步骤

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目需求涉及如下几个步骤: a.矢量化 b.获取范围内要素 ...

  5. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  6. 原生JavaScript实现hasClass、addClass、removeClass、toggleClass

    兼容IE6+,因IE6.IE7.IE8不支持Array.prototype.indexOf()和String.prototype.trim(),分别用Polyfill实现支持. 详细: indexOf ...

  7. arcgis api for js入门开发系列八聚合效果(含源代码)

    上一篇实现了demo的图层控制模块,本篇新增聚合效果,截图如下(源代码见文章底部): 聚合效果实现的思路如下: 1.map.html引用聚合包,项目已经包含进来了的聚合文件夹: <script ...

  8. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  9. U盘安装Kali 出现cd-rom无法挂载 已解决

    用U盘安装Kali Linux的过程中,出现cd-rom无法挂载的现象,百度坑比啊,醉了.下面亲测成功 出现无法挂载后,选择执行shell 第一步:df -m此时会看到挂载信息,最下面的是/dev/* ...

  10. NYOJ 954

    首先观察: 2! = 2×1                 = (2)10     = (10)2,        则第一个1是第2位,2!有1个质因数23! = 3×2×1             ...