Mongodb(三):Mongodb的增删改查(1)

学Mongodb之前,最好先了解一下JSON这种数据格式,Mongodb中的BSON是JSON的一种扩展,和JSON差不多,如果懂JSON的话,学起来会容易很

多,当然JSON也是很容易上手的。

(1):插入(insert)可以有两种,单个的插入document和批量的插入document

a. 插入一条document:  示例:db.persons.insert({"_id":"001", "name":"zhangsan", "age":23})

说明:可以理解成就是以JSON格式进行增加,findOne()是查询第一条记录.

b.批量插入:说白了,就是插入一个数组:,如下:

说明:在老的版本中好像还不支持批量插入,但是新的版本已经支持了,在老的版本中,可以写一个for循环实现批量增加,既然新版本已经有了

批量增加,就用这种方式吧。

(2) save操作:save操作和insert操作区别在于当遇到_id相同的情况下,save会对那条数据进行跟新操作,insert则会报错。如下:

(3) remove操作:删除数据。不带条件全部删除:db.persons.remove().下面写一个带条件删除的:db.persons.remove({"_id":"003"}),如下:

(4):update操作:update操作中的修改器会在下篇再说,这里说一下:强硬的文档替换式更新操作,说白了,就是将先前的记录删除掉,再添加一条新

的(也可以说成是整体更新),如下:db.persons.update({"_id":"001"}, {"age":22})

说明:a.update方法语法:update(查询条件, 更新结果); <其实并不止两个参数,后面会接触到>

      b.从上面的结果可以看出,虽然age这个字段得到了更新,但是name字段却没有了,这就是强硬的document替换式更新操作,就

       是用新的这一条替换原来那一条。后面所讲的修改器是一种局部的更新。

       c.注意:主键冲突的时候会报错并且停止更新操作 ,因为是强硬替换当替换的文档和已有文档ID冲突的时候 ,则系统会报错

(5): upsert操作:顾名思义,这是两个单词的缩写:update和insert,这个操作的目的是如果有这个数据,就进行更新操作,如果没有这个数据

就进行插入操作。但是要注意,其实并没有upsert这个方法,upsert只是一种说法,它的实现还是靠update方法来做的。将update方法的

第三个参数改成true即可做到upsert。 如下:db.persons.update({"_id":"003"},{"name":"wangwu"},true)

   

从结果可以看出,要更新的数据在原本的数据中不存在,所有就添加了一条数据,不过_id值是自动生成的,不能指定(这里有点纠结,为什

   么不用我的_id呢?)。

(6):批量更新操作, 在默认情况只会更新符合条件的第一条,即使有多条数据符合查询条件,也只会更新第一条数据,如下:

那如何做到全部更新呢?将update方法的第四个参数改为true即可,如下:db.persons({"name":"wangwu"},{"name":"zhaoliu"},false,true)

  注意:上图中刚开始的时候报了一个错:multi update only works with $ operators,就是说如果用了批量更新,就只能够进行局部更新,而

不能进行整体更新。$set是一个修改器,是进行局部更新操作的。可以把它看成是一个特殊的键(时刻牢记JSON的格式就不会晕)。下篇就会讲

修改器。

时间: 2024-11-08 22:35:08

Mongodb(三):Mongodb的增删改查(1)的相关文章

mongodb的安装与增删改查

mongodb是一款分布式的文件存储的数据库,注意这两个词,分布式和文件存储.mongodb支持复制和分片,可以合理的运用空间的大小,也可以达到容灾的目的.另外文件存储也是一个特点,抛弃了传统的表的概念,使用了集合的概念,下面是对应图 另外一个mongodb具有的优势便是其具有一个javascript的shell,你可以在这里使用纯js的语法. 目前mongodb的版本是3.X版本的,其api相对于2.x版本的变化了不少,包括很多常用的增删改查的命令都有所变化. 首先,下载mongodb,然后c

mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB - 安装及运行 下载 07/05/2017 Current Stable Release (3.4.6) https://www.mongodb.com/dow

MongoDB java API 实现增删改查

一.下载jar包 http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 二.代码实现 1 package com.xbq.mongodb; 2 import java.util.ArrayList; 3 import java.util.HashMap; 4 import java.util.List; 5 import java.util.Map; 6 import org.bson.types.ObjectId; 7 i

SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑

一.NoSQL简介 1.NoSQL 概念 NoSQL( Not Only SQL ),意即"不仅仅是SQL".对不同于传统的关系型数据库的数据库管理系统的统称.NoSQL用于超大规模数据的存储.这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. 2.NoSQL的优点/缺点 --优点: 高可扩展性 分布式计算 低成本 架构的灵活性,半结构化数据 没有复杂的关系 --缺点: 没有标准化 有限的查询功能(到目前为止) 数据展现不直观 二.MongoDB数据库 1.MongoDB

Django框架(三)-- orm增删改查、Django生命周期

一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 开发效率高 缺点: SQL的效率低 3.使用orm 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DATABASES = { 'default': { 'ENGINE': 'django.db.backen

mongoDB用java实现增删改查

package mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class conn

基于mongodb的python之增删改查(CRUD)

1,下载mongodb的python驱动,http://pypi.python.org/pypi/pymongo/,根据操作系统和python平台版本选择相应的egg或exe安装. 2,新建一个py脚本(可以在eclipse下安装pydev插件,很方便) #coding=utf-8 import pymongo connection = pymongo.Connection("192.168.0.101", 27017) db = connection.python print db.

MySQL数据库学习【第三篇】增删改查操作

注意:1.如果你在cmd中书命令的时候,输入错了就用\c跳出 2.\s查看配置信息 一.操作文件夹(库) 增:create database db1 charset utf8; 删:drop database db1; 改:alter database db1 charset gbk; 查:show databases; #查看所有的数据库 show create database db1; #查看db1数据库 二.操作文件(表) 切换到文件夹下:use db1 增:create table t

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABLE 2 ( 3 gid NUMBER not null, 4 gname VARCHAR2(90), 5 gdetails CLOB, 6 gpicture VARCHAR2(100), 7 gprice NUMBER, 8 gleixing NUMBER, 9 gpinpai VARCHAR2(20) 10 ) 11 tablespace

MVC 三步完成增删改查设计

1.添加模型类: public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Price { get; set; } } 2.添加上下文类: public class ProductContext : DbContext { public ProductContext() : base(