MongoDB的增删改查 转

MongoDB的增删改查

(黎明你好原创作品,转载请注明)

MongoDB中数据的基本单元叫做文档,采用json的键-值的方式。多个键及其关联的值有序的存放在一起变是文档。类似于编程语言中的键值关系。MongoDB文档都是BSON文档,他是一个JSON的二进制形式。

MongoDB的文档

MongoDB中文档被存储在集合中。集合是一组有关系索引的文档。集合类似于关系数据库中的表。

MongoDB的集合

2.1 方法参考

查询游标方法

名称 说明
cursor.count() 返回游标中的文档的数量。
cursor.explain() 报告的查询执行计划,包括索引使用的游标。
cursor.hint() 若要使用查询的特定索引的部队 MongoDB。
cursor.limit() 约束游标的结果集的大小。
cursor.next() 返回游标中的下一个文档。
cursor.skip() 返回一个游标,开始传递或跳过的一些文件后才返回结果。
cursor.sort() 返回结果排序根据排序的规范。
cursor.toArray() 返回一个数组,包含由光标返回的所有文档。
名称 说明
db.collection.insert() 在集合中创建一个新文档。
db.collection.save() 提供insert()和update ()插入新文件的包装。
db.collection.update() 修改集合中的文档。
db.collection.find() 集合上执行查询,并返回一个游标对象。
db.collection.findOne() 执行查询,并返回一个单独的文档。
db.collection.remove() 从集合中删除的文件。
db.collection.count() 换行计数集合或匹配查询中返回的文档数的计数。
db.collection.distinct() 返回一个数组没有指定的字段不重复值的文件。

2.2 Insert()

Java代码  

  1. db.collection.insert(document)

Insert()方法有以下行为:

如果该集合不存在,insert()方法将创建集合。

如果文档没有指定一个_id后缀字段,然后 MongoDB 将添加一个_id字段并使用ObjectId为文档分配取值。

如果文档需要增加一个新的字段,则insert()方法可以为文档插入新的字段。这不需要更改集合的数据模型或现有的文档。

Java代码  

  1. db.user.insert({_id: "1", name:{username: "limingnihao", nickname: "黎明你好"}, password: "123456"})
  2. db.user.insert({_id: "2", name:{username: "zhoujielun", nickname: "周杰伦"}, password: "123456", birth: ISODate(‘1979-01-18‘)})
  3. db.user.insert({_id: "3", name:{username: "caiyilin", nickname: "蔡依林"}, password: "123456", birth: ISODate(‘1980-09-15‘), special:["看我72变", "花蝴蝶", "特务J"], regionName: "台湾"})

2.3 Save()

Java代码  

  1. db.collection.save(document)

插入一个新的文档,或者根据其文档的参数更新现有的文档。

如果文档不包含一个_id的字段进行save时,mongod将向文档中添加一个_id字段并将其分配一个ObjectId。

如果文档中包含一个_id字段和值进行save ()方法时,则在集合中查询此_id的文档执行的是upsert操作。如果集合中不存在具有指定的_id值的文档,save ()方法执行的是insert操作。save ()方法执行时会将现有文档中的所有字段都替换为新文档中字段。

Java代码  

  1. db.user.save({_id: "1", name:{username: "limingnihao", nickname: "黎明你好"}, password: "123456", birth: ISODate(‘1985-07-15‘)})

2.4 Update()

Java代码  

  1. db.collection.update( <query>, <update>, <upsert>, <multi> )

修改现有存在的文档或集合时使用。

默认的update()方法值更新单个文档。但是如果multi参数设置为true,则更新操作可以更新全部符合条件的文档。

Query – 类型:文档;用于更新选择过滤。

Update – 类型:文档;需要更新的文档的内容。

Upsert – 类型:文档或boolean;设置为true时,当查询没有匹配到文档时进行新建。默认值为false

Multi: - 类型:文档或boolean;设置为true时,则更新满足查询条件的所有文档(多个)。设置为false时只更新单个文档。默认为false。

字段更新操作方式

名字 说明
$inc 用来增加已有键的值,或者在键不存在时创建一个键。是专门来增加(和减少)数字的。只能用于整数、长整数或双精度浮点数。要是用在其他类型的数据上就会导致操作失败。
$rename 重命名字段。新的字段名称不能和文档中现有的字段名相同。
$setOnInsert 执行insert操作时,操作给相应的字段赋值。
$set 用来指定一个键的值。如果这个键不存在,则创建它。
$unset 从文档中移除指定的键。

Java代码  

  1. db.user.update({_id: "1"}, {$inc:{age: 1}}, {multi:true})
  2. db.user.update({_id: "1"}, { $rename: { ‘password‘: ‘pwd‘}})
  3. db.user.update({_id: "4"}, { $setOnInsert: { works: 5}}, {upsert: true})
  4. db.user.update({_id: "1"}, {$set:{password: "654321", age: 28}})
  5. db.user.update({_id: "4"},{$unset: {"works": 5 }})

2.5 Find()

Java代码  

  1. db.collection.find(<criteria>, <projection>)
  2. db.collection.findOne(<criteria>, <projection>)

Criteria - 类型:文档;可选,文档的查询过滤条件。

Projection - 类型:文档,对结果进行字段匹配,{ field1: <boolean>, field2: <boolean> ... }。

后面还可以:Sort()排序、Limit()限制个数、Skip()起始点。

Java代码  

  1. db.collection.find(<criteria>, <projection>)返回集合
  2. db.collection.findOne(<criteria>, <projection>)返回一个
  3. db.user.find({_id: "1"})
  4. db.user.find({works: 5})
  5. db.user.find().sort({age:1})
  6. db.user.find().limit(2).sort({age:1})
  7. db.user.find().skip(1).limit(2).sort({age:1})

2.6 Remove()

Java代码  

  1. db.collection.remove(query, justOne)

Query – 类型:文档;用于删除选择过滤。

JustOne – 类型:boolean;当设置为true时只删除一个文档。

Java代码  

  1. db.user.remove({_id: "4"}, true)

2.7 Count()

Java代码  

  1. db.collection.count(<query>)

Query – 类型:文档;用于查询选择过滤。

Java代码  

  1. db.user.count({age: 1})

2.8 Distinct()

Java代码  

  1. db.collection.distinct(field, query)

Field – 类型:字符串;返回非重复的字段。

Query – 类型:文档;查询条件。

Java代码  

  1. db.user.distinct("_id", {age: 1})
时间: 2024-10-13 22:15:47

MongoDB的增删改查 转的相关文章

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

MongoDB(三)——增删改查

MongoDB作为非关系型数据库,还是传统数据库的增删改查有很大的区别的,这里只是将知识点进行了一下提纲挈领,实际用的时候,我们百度一下详细用法即可.先看大的几个方面: 一,对于里边的插入和删除不再过多赘述,相对来说知识点比较少.先来看一下更新,常用操作还是非常有用的,需要我们根据实际情况灵活运用,这里只是提出了知识点,需要百度出例子来学习使用: 2,查询也是一样,看一下知识点的汇总,其实用几个,还是有规律的,比较容易记录的: 3,看一下固定集合Capped Collection:顾名思义是有着

C# 对MongoDB 进行增删改查的简单操作

C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 1,连接数据库 /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri

MongoDB之增删改查(一)

本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其他关系型数据库一样,通过insert来增加数据到集合中去. db.collectionName.insert(内容) 显示数据库中所有集合: show collections 删 MongoDB中通过remove来删除集合中符合一定条件的文档. remove接受一个参数,作为寻找要删除文档的条件: 当然了,也可以直接删除一整个集合,通过drop方法: db.person.drop() 删除集合然后重建索引比删除集合中所有的文档

Mongodb c#增删改查

写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象(document)三个层次组成.MongoDB对于关系型数据库里的表,但是集合中没有列.行和关系概念,这体现了模式自由的特点. 那么在c#如何使用呢?下面看个例子,你会发现上手非常简

Mongodb之增删改查

一 Mongodb 首先下载好这个和上一篇文章下载的Mongodb 关于Mongodb的常识 1 它的默认端口 是27017 2 3 show dbs 查看所有存在磁盘上的数据库 4 show tables 查看当前数据库存在磁盘上的数据表 5 6 use 数据库 创建数据库或切换数据库 7 8 ######使用了不能存在的对象即创建该对象###### 9 10 数据库.表名 创建表 一些基本命令 二 Mongodb数据的增删改查 #insert db.user.insert({"id"

MongoDB的增删改查

1.启动 - 配置环境变量 MongoDB/3.4/bin 通过命令 mongod 来启动 MongoDB 默认端口 27017 redis:6379 Mysql:3306 可以指定数据库存放目录,但在登录时必须指定路径: mongod --dbpath="指定数据库存放路径" 2.应用连接MongoDB数据库 通过 mongo 指令 进行本地数据库连接 3.MongoDB数据: mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row mongodb - 数据库服

vue+express+mongodb 实现 增删改查

一.创建一个vue项目 用脚手架vue-cli搭建一个项目,数据请求用axios方式,写几个按钮用来调接口(vue这块不做多解释,不懂的可以先去官网学习vue-cli:https://cli.vuejs.org/zh/guide/cli-service.html   axios:http://www.axios-js.com/) 注意点:在用axios调用接口的时候会产生跨域,所以有配置下:在vue项目根目录下打开config文件夹下的index.js文件中proxyTable中加入配置内容 p