插入文档

使用db.COLLECTION_NAME.insert() 或 db.COLLECTION_NAME.save() 方法向集合中插入文档

     db.users.insert( {
            user_id: "abc123",
            age: 55,
            status: "A"
            } )

在插入的文档中,如果没有指定 _id 参数,MongoDB 会自动为文档指定一个唯一的 ID。

使用db.COLLECTION_NAME.insert() 方法传入一个文档数组,进行批量插入

     db.users.insert( [{
            user_id: "abc123",
            age: 55,
            status: "A"
            },{
            user_id: "abc3",
            age: 55,
            status: "A"
            },{
            user_id: "abc13",
            age: 55,
            status: "A"
            }] )

也可以使用db.users.save(document) 插入文档。如果没有指定文档的 _id,那么 save() 就和 insert() 完全一样了。如果指定了文档的 _id,那么它会覆盖掉含有 save() 方法中指定的 _id的文档的全部数据。

更新文档

使用db.COLLECTION_NAME.update() 或 db.COLLECTION_NAME.save() 方法来更新集合中的文档

update 语法格式
    db.COLLECTION_NAME.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。
db.users.update({'user_id':"abc13"},{$set:{'age':77}})
save语法格式

db.COLLECTION_NAME.save 方法利用传入该方法的文档来替换已有文档(通俗解释:如果save方法传入的文档结构A与原文档结构B不一致时,则会使用新的文档结构A替换原来的文档结构B)。如果没有指定文档的 _id,那么 save() 就和 insert() 完全一样了。如果指定了文档的 _id,那么它会覆盖掉含有 save() 方法中指定的 _id的文档的全部数据

    db.COLLECTION_NAME.save(
<document>,
   {
     writeConcern: <document>
   }
)

参数说明:

  • document : 文档数据。
  • writeConcern :可选,抛出异常的级别。
       db.users.save({"_id" : ObjectId("582194dd7f953cec73197bb1"),'status':"OK"})

删除文档

使用db.COLLECTION_NAME.remove() 方法来删除集合中的文档

remove 语法格式
    db.COLLECTION_NAME.remove(
<query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query :(可选)删除的文档的条件
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。
    db.users.remove({"status" : 'OK'})

如果你只想删除第一条找到的记录可以设置 justOne 为 1

    db.COLLECTION_NAME.remove(query,1)

如果想删除集合中的所有数据可以通过以下方式处理(相当于关系型数据库中的truncate 命令)

    db.COLLECTION_NAME.remove({})

关系型数据库与MongoDB数据库在一些术语上的对比

关系型数据库(mysql)

MongoDB

备注

insert into `testdb`.`users` (`user_id`,`age`,`status`) values (1,100,"A");

db.users.insert( { user_id: "abc123", age: 55, status: "A" } ) 或 db.users.save( { user_id: "abc123", age: 55, status: "A" } )

 

update `testdb`.`users` set age=50 where age=100

db.users.update({'age':100},{$set:{'age':50}},{multi:true})

根据主键更新全表数据时可以使用db.COLLECTION_NAME.save()语法,部分字段更新不建议使用

update `testdb`.`users` set age=50 where age=100 limit 1

db.users.update({'age':100},{$set:{'age':50}},{multi:false})

根据主键更新全表数据时可以使用db.COLLECTION_NAME.save()语法,部分字段更新不建议使用

delete from `testdb`.`users` where age=100 limit 1

db.users.remove({'age':100},1)

 

delete from `testdb`.`users` where age=100

db.users.remove({'age':100})

 

truncate `testdb`.`users`

db.users.remove({})

 

MongoDB学习笔记——文档操作之增删改的更多相关文章

  1. MongoDB学习笔记——文档操作之查询

    查询文档 使用db.COLLECTION_NAME.findOne()可以查询所有满足条件的第一条数据 预发格式如下: db.COLLECTION_NAME.findOne(<query> ...

  2. MongoDB入门---文档操作之增删改

    之前的两篇文章,已经分享过关于MongoDB的集合还有数据库的各种操作,接下来就涉及到最主要的喽,那就是数据方面的操作,在这里叫做文档操作.话不多说,大家来看正文.     首先来看一下它的数据结构: ...

  3. mongoDB文档操作【增删改】

    MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 Mo ...

  4. mongodb内嵌文档的javaapi,增删改查

    数据结构: {"_id" : "000000001",  //Mongodb默认主键 "UID" : "000000001&quo ...

  5. mongoDB 文档操作_增

    增加 / 插入 /保存 单文档插入 命令 db.collection.insertOne(doc) 功能 向被 use 的数据库中插入数据 实例 db.class.insertOne({"n ...

  6. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...

  7. MongoDB 集合与文档操作

    一.创建DB 1.查看DB >show dbs 2.创建DB >use mydb 3.查看当前DB >db 4.删除DB >use mydb >db.dropDataba ...

  8. StyleCop学习笔记-文档规则

    文档规则: .SA1600:ElementsMustBeDocumented元素必须添加注释 .SA1601: PartialElementsMustBeDocumented Partial修饰的成员 ...

  9. Mongodb学习笔记五(C#操作mongodb)

    mongodb c# driver(驱动)介绍 目前基于C#的mongodb驱动有两种,分别是官方驱动(下载地址)和samus驱动(下载地址). 本次我们只演示官方驱动的使用方法. 官方驱动文档查看 ...

随机推荐

  1. Criteria查询数据

    Criteria介绍: Criteria查询是Hibernate提供的一种查询方式,与HQL基于字符串的查询形式完全不同.Hibernate提供了org.hiberanee.Criteria 接口.o ...

  2. [Code] C#与js的正则表达式

    元字符: 单个字符: . [] 限定符: * + ? {n} {n,} {n,m} 头尾: ^ $' 其他: | () 正则表达式在js和C#中都有. C#中: 创建: var regex = new ...

  3. Unity中简单使用Opengl

    简介 由于项目特殊需求,需要在unity中使用一些OpenGL的东西来绘制图形(PS:其实就是有一个拖尾算法只有OpenGL版本~~~懒得改了,直接在unity中使用OpenGL算了).所以琢磨咯下如 ...

  4. 2016C#模拟谷歌Google登陆Gmail&Youtube小案例

    之所以写这个,是因为本来想写一个Youtube刷评论的工具,把登录做出来了,后面就没继续做下去. 涉及到基本的HttpWatch的应用以及Fiddler的应用(Fd主要用来排查问题,通过对比 浏览器和 ...

  5. ASP.NET使用UpdatePanel实现AJAX

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异 步局部更新区域,它必须依赖于ScriptManager存在, ...

  6. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  7. 设计模式总结篇系列:观察者模式(Observer)

    观察者模式中通常有两个基本的概念主题:观察者和被观察者.当被观察者状态发生改变时,需要通知相应的观察者,当然,每个被观察者所对应的观察者可能不知一个,他们之间是1:n的关系.用专业一点的术语对观察者模 ...

  8. 【GOF23设计模式】状态模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_状态模式.UML状态图.酒店系统房间状态.线程对象状态切换 package com.test.state; public ...

  9. html5 大幅度地增加和改良input元素的种类

    增加和改良input元素 url类型.email类型.date类型.time类型.datetime类型.datetime-local类型.month类型.week类型.number类型.range类型 ...

  10. Javascript面向对象编程(二)--- 构造函数的继承

    这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例 今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个"动 ...