MongoDB初识之CURD

2024-03-01 19:38
文章标签 初识 mongodb curd

本文主要是介绍MongoDB初识之CURD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 增删改查

1.1. 插入

1.1.1. Insert()

db.blog.inset({“_id”:1},{“name”:”swl”})

 

1.2. 删除

1.2.1. remove()  

db.blog.remove({_id:1}) //删除指定集合

Db.blog.remove(null) //删除所有集合

 

1.3. 更新

1.3.1. update

db.blog.update({_id:1})

 

1.3.2. 修改器

1.3.2.1. $inc 计数器 注:若键不存在,则创建这个键

db.blog.update({“_id”:1},{$inc:{“count”:1}})

 

1.3.2.2. $set 指定一个键的值,若键不存在,则创建这个键

db.blog.update({“_id”:1},{$set:{“name”:”swl”}})

db.blog.update({“_id”:1},{$set:{“users”:[“swl”,”xxx”]}})

 

1.3.2.3. 数组修改器

1.3.2.3.1 $push

db.blog.update({“_id”:1},{$push:{“users”:”yyyy”}})

 

1.3.2.3.2 $addToSet 如果元素在数组中不存在,则添加

db.blog.update({“_id”:1},{$addToSet:{“users”:”yyy”}})

 

1.3.2.3.3. $ne 查询数组中是否存在某个元素,不存在,则添加

db.blog.update({“_id”:1,{$ne:{“users”:”qqq”}}},{“$push”:{“users”:”qqq”}})

 

1.3.2.3.4. $addToSet$each结合,添加多个不同的值

db.blog.update({“_id”:1},{“$addToSet”:{“users”:{“$each”:[“aaa”,”bbb”,”ccc”]}}})

 

1.3.2.3.5. $pop 删除元素(首位或末尾)

db.blog.update({“_id”:1},{“$pop”:{“users”:{key:1}}}) //从数组末尾开始删除

db.blog.update({“_id”:1},{“$pop”:{“users”:{key:-1}}}) //从数组首部开始删除

 

1.3.2.3.5. $pull 删除指定元素

Db.blog.update({“_id”:1},{“$pull”:{“users”:”bbb”}})

 

1.3.2.3.6. 通过数组元素的位置修改元素

db.blog.update({“_id”:1},{“$set”:{“users.0”:15}})   //users.0 指向users数组的第一个元素

db.blog.update({"_id":1,"users":1100},{"$inc":{"users.$":100}})  //$代替匹配到的元素

 

1.3.2.4. upsert 若没有文档符合更新条件,则以这个条件和更新文档为基础创建一个新的文档

db.blog.update({“_id”:1},{“name”:”swl”},true)

 

1.3.2.5. save Sheli 帮助程序

描述:文档不存在是插入,存在时更新。

eg:

>var x = db.blog.findOne()

>x.name = “xxx”

>db.blog.save(x)

等价于

Db.blog.update({“_id”:x._id},x)

 

1.3.2.6. 多文档更新,指定update第四个参数为true即可。

db.blog.update({"name":"xxx"},{"$set":{"name":"yyy"}},false,true)

 

1.4. 查找

1.4.1. find()  @return:返回查询的所有集合

db.blog.find()

db.blog.find({“name”:”swl”})

 

1.4.2. findOne()  @return:返回查询的第一个集合

db.blog.findOne()

db.blog.findOne({“name”:”swl”})

 

1.4.3. 条件查询

1.4.3.1. 指定返回的键

db.blog.find({},{“name”:1}) //1: name键要返回

db.blog.find({},{“name”:0}) //0: name键除外,都要返回

 

1.4.3.2. 大于等于小于

Key$lt(less than)$lte(less than or equal to)

 $gt(greater than)$gte(greater than or equal to)

db.blog.find({age:{“$gt”:10,”$lt”:20}})

 

1.4.3.3 OR查询

Key: $in$nin$or

db.blog.find({“age”:{“$in”:[20,50,80]}})  //满足一个条件即返回

db.blog.find({“age”:{“$nin”:[20,50,80]}})

db.blog.find({“$or”:[{“name”:{“$in”:[“xxx”,”yyy”]}},{“age”:20}]}) //名字为”xxx”或者”yyy”或者年龄为20的人。

 

1.4.3.4. $mod 取余

db.blog.find({“age”:{“$mod”:[5,2]}}) //@return  age%5 == 2

 

1.4.3.5. $not 取反

db.blog.find({"age":{"$not":{"$mod":[5,0]}}}) //@return  age%5 != 2

 

1.4.3.6. 正则匹配

db.blog.find({"name":/^y/g})

 

1.4.3.7. 数组查询

1.4.3.7.1 单条件查询

db.blog.find({“users”:”xxx”})

 

1.4.3.7.2. $all 多条件查询

db.blog.find({"users":{"$all":["xxx","yyy"]}})

 

1.4.3.7.3. 精确匹配查询

db.blog.find({"users":["xxx","yyy","zzz","ooo"]}) //注:元素顺序必须与数据库中一致

db.blog.find({“users.1”:”yyy”}) //@return 第二个元素为”yyy”的文档

 

1.4.3.7.4. $size 根据数组长度查询

db.blog.find({"users":{"$size":7}})

 

1.4.3.7.5. $slice @return 数组子串

db.blog.find({},{"users":{"$slice":2}}) //@return 前两个元素

db.blog.find({},{"users":{"$slice":-2}}) //@return 后两个元素

db.blog.find({},{"users":{"$slice":[2,10]}}) //@return from 3 to 3

 

1.4.3.7.6. $elemMatch 嵌套文档查询

db.blog.find({“comments”:{“$elemMatch”:{“author”:”Jhon”,”score”:{“$gte”:5}}}})

 

1.4.3.8. null查询

A. db.blog.find({“Z”:null}) //@return Znull或者不存在Z的文档

B. db.blog.find({“Z”:{“$in”:[null],”$exits”:true}}) //@return 存在元素z并且值为null

 

1.4.3.9. $where

通过表达式进行查询

 

2. 游标

2.1. limit 设定返回的条目数

db.blog.find().limit(3)  //最多三条

 

2.2. skip

Db.blog.find().skip(2)  //忽略前两条

 

2.3. sort 排序

Db.blog.find().sort({“_id”:1})   //正序

db.blog.find().sort({“_id”:-1})  //倒序

 

2.4 hasNext

var cursor = db.blog.find();

while(cursor.hasNext()){

var doc = cursor.next();

}

这篇关于MongoDB初识之CURD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763578

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

docker学习系列(一)初识docker

在第一版本上线之后公司,我们决定将之前使用的开源api文档项目转移到本公司的服务器之上,之前用的是showdoc,showdoc利用的是php技术,作为java程序员表示需要快速部署php环境以及apach容器都需要时间,所以采用第二种方法,即利用docker进行快速部署(虽然学习成本也不比php少)。 一、docker简介 docker的官网是https://www.docker.com,

生产mongodb 分片与集群 方案

链接:http://my.oschina.net/pwd/blog/411439#navbar-header 注:主要是有一键安装的脚本可以借鉴

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

mongodb简单入门

一篇较好的mongodb常用操作命令:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html mongodb的java操作:http://www.cnblogs.com/cyhe/p/5451421.html

mongodb自启动脚本.md

可粘贴文本(不全): #!/bin/sh##chkconfig: 2345 80 90#description:mongodb#processname:mongodbif test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/e

框架template初识

框架初识 框架就是一个别人帮我们搭好的舞台,造好了很多现成的工具供我们使用,让开发过程更快速、简洁。 Gin框架介绍 Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 Gin是一个用Go语言编写的web框架。它是一个类似于martini 但拥有更好性能的API框架, 由于使用了 httprouter,速度提高了近40倍。 第一个Gin示例 package mai

MongoDB学习—(6)MongoDB的find查询比较符

首先,先通过以下函数向BookList集合中插入10000条数据 function insertN(obj,n){var i=0;while(i<n){obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})i++;}}var BookList=db.getCollection("BookList")调用函数,这样,BookList