MongoDB之增删改查(一)

本文主要介绍MongoDB数据库增删改查操作。


mongoDB和其他关系型数据库一样,通过insert来增加数据到集合中去。

db.collectionName.insert(内容)

显示数据库中所有集合:

show collections


MongoDB中通过remove来删除集合中符合一定条件的文档。

remove接受一个参数,作为寻找要删除文档的条件:

当然了,也可以直接删除一整个集合,通过drop方法:

db.person.drop()

删除集合然后重建索引比删除集合中所有的文档速度要快。


修改操作相比增加和删除而言较为复杂,因为MongoDB不仅仅可以使用update方法,还可以使用很多的辅助修改器,我们先来说说update方法。

update

update方法接受两个参数,第一个是找到文档的限定条件,第二个需要修改的新文档:

上面update中的({“name”:”liufang”},post),中的name:liufang相当于关系型数据库中的where中的判断条件,而post则相对于set语句后的执行内容。

更新最简单的就是使用一个新文档来替代匹配的文档,这适用于模式结构发生较大变化的时候.如将下面的文档:

{
  "name":"tyq",
  "age":22,
  “date”:new Date()
}

修改为:

{
  "name":"tyq",
    “age”:22,
    “friends”:”liufang”
}

如下图:

修改器

再来谈谈MongoDB强大的修改器

MongoDB有着一些辅助修改器,比如inc,set,unset,unset,push,pop,addToset,each等等。我们来一一介绍:

$inc

$inc用来增加和减少键或者值。

当其用来增加已有键的值时,如果不存在键,就增加该键。通常用于分析数据,投票等位置。如:

db.person.insert(
  {"url":"blog.csdn.net/mevicky"}
)

使用$inc增加一个键pageViews,默认值为10000

db.person.update(
  {"url":"blog.csdn.net/mevicky"},
  {"$inc":{"pageViews":10000}}
)

使用$inc给键pageViews再添加10000

db.person.update(
  {"url":"blog.csdn.net/mevicky"},
  {"$inc":{"pageViews":10000}}
)

也可以使用$inc给键pageViews减少10000

db.person.update(
  {"url":"blog.csdn.net/mevicky"},
  {"$inc":{"pageViews":-10000}}
)

示例如下:

$set

$set用来指定一个键的值,如果键不存在,则创建该键,一般用于更新值或者增加新定义的键。如:

db.person.insert(
  {
    "name":"lf",
    "age":23,
    "sex":"male"
  }
)

添加喜欢的书籍:

db.person.update(
  {
    "name":"lf"
  },
  {
    "$set":{"book":"war and peace"}
  }
)

修改喜欢的书籍:

db.person.update(
  {
    "name":"lf"
  },
  {
    "$set":{"book":"war and peace2"}
  }
)

示例如下:

$unset

$unset用于将键删除,如果没有找到也不会报错。

db.person.update(
  {
    "name":"lf"
  },
  {
    "$unset":{"book":1}
  }
)

$push

push和pop只能用在数组类型,如果指定的键已存在,$push会向已有数组的末尾加入一个元素,如果键不存在,就创建一个新数组。

例如,向以上文档中,添加一个包含一个数组的”comment”键,还向 comment 数组push一个评论.

这个数组会自动创建,并加入评论:

db.person.update(
  {"name":"lf"},
  {
    $push:
    {
      "comments":
      {
        "name":"tyq",
        "content":"nice"
      }
    }
  }
)

示例如下:

$pop

pop和push类似,只不过其是从数组删除元素,其可以从数组任何一端删除元素:

{$pop:{key:1}}//从数组末尾删除一个元素
{$pop:{key:-1}}//从数组头部删除一个元素

$pull

$pull可以根据指定的特定条件删除元素,也可以根据位置删除元素:

db.person.update(
  {"name":"lf"},
  {
    "$pull":
    {
      "emails":"362512489@qq.com"
    }
  }
)

$pull会将所有匹配的部分删掉,比如数组【1,2,3,4,4,4】,执行pull 4后,得到的数组是【1,2,3】

$addToSet

$addToSet用于向数组添加数据,如果数组中有,则不再重复添加。

$each

$each用来运行修改器向集合多次操作数据,可以利用$addToSet$each一起来添加不同的值:

db.users.update(
  {"name":"lf"},
  {
    "$addToSet":
    {
      "emails":
      {
        "$each":
        [
          "362512489@111.com",
          "362512489@112.com",
          "362512489@113.com"
        ]
      }
    }
  }
)

这里只介绍了一部分修改器,如果想了解所有的修改器可以查阅官方文档:

修改器介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 18:55:37

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中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系.MongoDB文档都是BSON文档,他是一个JSON的二进制形式. MongoDB的文档 MongoDB中文档被存储在集合中.集合是一组有关系索引的文档.集合类似于关系数据库中的表. MongoDB的集合 2.1 方法参考 查询游标方法 名称 说明 cursor.count() 返回游标中的文档的数

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