`
limingnihao
  • 浏览: 1825822 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB学习笔记之 第2章 MongoDB的增删改查

 
阅读更多

第2章 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()

 

db.collection.insert(document)
        Insert()方法有以下行为:

 

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

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

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

 

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

 

2.3 Save()

 

db.collection.save(document)
         插入一个新的文档,或者根据其文档的参数更新现有的文档。

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

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

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

 

2.4 Update()

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 从文档中移除指定的键。

 

 

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

2.5 Find()

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

 

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

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

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

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

 

2.6 Remove()

db.collection.remove(query, justOne)

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

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

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

 

2.7 Count()

db.collection.count(<query>)

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

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

  

2.8 Distinct()

db.collection.distinct(field, query)

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

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

 db.user.distinct("_id", {age: 1})

 

 

  • 大小: 19.7 KB
  • 大小: 20.1 KB
分享到:
评论
3 楼 JackMei 2016-04-06  
不错,值得学习
2 楼 JackMei 2016-04-06  
123123123
1 楼 JackMei 2016-04-05  
不错,值得学习

相关推荐

    JAVA操作MongoDB简单增删改查

    本教程将详细介绍如何使用Java与MongoDB进行交互,包括基本的增删改查(CRUD)操作。首先,我们需要引入MongoDB的Java驱动程序,这通常通过Maven或Gradle的依赖管理来实现。 1. **添加依赖** 在Maven的`pom.xml`...

    Java MongoDB 增删改查Demo程序

    通过学习和实践这些示例,你将能够熟练地在Java应用程序中与MongoDB进行交互,进行数据的增删改查操作。在实际项目中,你可能还需要关注错误处理、连接池管理、事务支持等方面,以确保应用程序的健壮性和性能。

    mongodb的小例子,增删改查,分页

    在"mongodb的小例子,增删改查,分页"这个主题中,我们将深入探讨MongoDB的基本操作,包括数据的插入(增)、查询(查)、更新(改)以及删除(删),同时还会涉及到数据分页这一重要的数据检索技术。 1. 数据插入...

    mongoDB增删改查+前端页面实现+idea+themlesf+mybatis

    在本项目中,我们将探讨如何使用MongoDB进行数据的增删改查操作,以及如何结合前端页面、IntelliJ IDEA开发环境、Thymeleaf模板引擎和MyBatis持久层框架来构建一个完整的应用程序。 首先,让我们深入了解MongoDB的...

    java 操作mongodb 增删改查

    本教程将详细介绍如何使用Java进行MongoDB的基本操作,包括增(添加数据)、删(删除数据)、改(修改数据)和查(查询数据)。 首先,你需要在项目中引入MongoDB的Java驱动程序。目前最新的稳定版本是`mongodb-...

    MongoDB java实现增删改查

    在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...

    MongoDb增删改查的网站范例

    在这个“MongoDb增删改查的网站范例”中,我们将探讨如何利用Spring Data项目和MongoDB适配器进行数据库操作。 Spring Data是一个强大的框架,它简化了与各种数据存储系统的交互,包括MongoDB。Spring Data MongoDB...

    使用C#访问MongoDB实现简单增删改查

    本教程将详细介绍如何使用C#访问MongoDB,实现基本的增删改查操作。 首先,我们需要在C#项目中引入MongoDB的驱动程序。MongoDB官方提供了`MongoDB.Driver`库,可以通过NuGet包管理器安装。在Visual Studio中,右键...

    通过C#访问mongodb进行增删改查(测试通过)

    本篇将详细讲解如何使用C#实现对MongoDB的增删改查操作,并提供经过测试验证的源代码。 首先,我们需要引入MongoDB的C#驱动程序,它提供了与MongoDB数据库进行通信的类和方法。在NuGet包管理器中,可以搜索并安装`...

    mongodb数据库增删改查

    在Java应用程序中,我们可以使用MongoDB Java驱动程序来与MongoDB进行交互,执行基本的数据库操作,如增(添加)、删(删除)、改(更新)和查(查询)。下面将详细介绍这些操作。 1. 添加(Add) 要向MongoDB集合...

    node.连接mongodb实现增删改查.zip

    在本文中,我们将深入探讨如何使用Node.js连接MongoDB数据库并实现基本的增删改查操作。MongoDB是一个流行的文档型数据库系统,而Node.js则是一个JavaScript运行环境,非常适合构建实时、高性能的网络应用。结合...

    java连接Mongodb进行增删改查_java连接Mongodb进行增删改查_curiousjop_depthklb_Mong

    本篇文章将详细讲解如何使用Java连接到MongoDB数据库,并进行基本的增删改查操作。 首先,连接MongoDB需要引入MongoDB的Java驱动程序。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org....

    java mongodb 增删改查demo

    java对mongodb数据库的增删改查测试demo。可直接运行,需要自己安装mongodb数据库,需要手动添加bins包下面的jdbc的jar包和junit4的jar包。包含自己写的mongodb安装文档。

    java操作mongodb增删改查

    ### Java操作MongoDB进行增删改查详解 #### 一、引言 在现代软件开发中,非关系型数据库如MongoDB因其灵活性和扩展性而备受青睐。Java作为一种广泛使用的编程语言,在操作MongoDB时提供了丰富的API支持。本文将详细...

    mongodb学习笔记资料

    mongodb学习笔记资料,从安装到操作库collection 对document的crud 索引 replicaSet sharding 备份与恢复

    MongoDB增删改查操作案例-用户信息增删改查.zip

    在本案例"MongoDB增删改查操作案例-用户信息增删改查.zip"中,我们将探讨如何使用MongoDB进行基本的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)用户信息。 1. 添加操作(Add): 在...

    mongodb实例,实现ASP.NET MVC增删改查 64位 2.4.3

    mongodb mongod.exe:数据库进程本身,是核心数据库服务器 mongo.exe:命令行Shell客户端,用于确保所有内容都已正常安装且能正常运行 可以对数据进行 CRUD操作、执行管理任务等

    MongoDB学习笔记

    自己在学习MongoDB的一些笔记,里面有各个查询选择器的使用截图,还有一些索引的介绍。

    nodejs操作mongodb实现增删改查

    以上就是使用Node.js操作MongoDB实现增删改查的基本步骤。随着对这两个技术的深入理解和实践,你将能够构建更复杂、功能丰富的应用程序。请参考提供的文章链接以获取更多细节和示例,同时持续学习和探索Node.js和...

    基于Html的crud-express-mongodb增删改查设计源码

    本源码提供了一个基于Html的crud-express-mongodb增删改查设计。项目包含1586个文件,其中...这个项目是一个基于crud-express-mongodb的增删改查系统,可能包括数据的增删改查等功能,适合用于需要进行数据操作的场景。

Global site tag (gtag.js) - Google Analytics