mongodb查询操作

1.查询操作

db.getCollection('example_data_1').find({})  查询所有的信息,相当于mysql中的select * from table_name;

2.查询特定条件的就需要在

db.getCollection('example_data_1').find({})中find({})中大括号中设定条件

   # 查询在集合example_data_1中,年龄在21和25之间的信息。

 db.getCollection('example_data_1').find({'age':{'$lt':25,"$gt":21}})

$lt -->less than --> 小于

$gt-->great than -->大于

$lte -->less than and equal -->小于等于

$gte -->great than and equal -->大于等于

$ne --> not equal -->不等于

记住英文就很好记住这些表达式

db.getCollection('example_data_1').find({‘title’:"第一章"}) ,查询条件是通过字典类型设置条件。查询title等于第一章的所有信息。

3.如过要限定字段,格式为:

 db.getCollection("example_data_1").find(用于过滤记录的字典,用于限定字段的字典),其中用于限定字段的字典的key为各个字段名,值只有两个,0或1.

举例子:

  db.getCollection('example_data_1').find({})

查询数据集example_data_1,但不返回“address”和“age”字段,查询语句如下:

db.getCollection('example_data_1').find({},{‘address’:0,"age":0})

4.查询数据又多少条数据

db.getCollection('example_data_1').find({}).count()   # 得到查询数据有多少条

5.限定返回结果,limit()

db.getCollection('example_data_1').find({}).limit(限制返回的条数)

db.getCollection('example_data_1').find({}).limit(2)

6 对查询的结果进行排序 sort()

 db.getCollection('example_data_1').find({'age':"$gt":21}).sort({"字段名":-1/1}) 其中-1表示倒序,1表示正序。

  

7 修改数据

update操作,对应的MongoDB命令为updateOne()或updateMany()

区别:

updateOne():只更新第一条满足要求的数据。

updateMany():更新所有满足要求的数据。

db.getCollection('example_data_1').updateMany(

 参数1:查询语句的第一字典,

  (‘$set’:{'字段1':“新的数值1”,“字段2”:“新的数值2”})   

)

  updatemany()第一个参数和find()参数一样,是一个字典,用来寻找所有需要被更新的记录。

db.getCollection("example_data_1").updateMany({"name":"张小二"},{"$set":{"work":"工程师"}})

8删除数据

要从example_date_1中删除字段“hello”值为world的这一条记录。

8.1 从集合中删除单条数据

8.2 从集合中删除多条数据。只要会查询数据,就会删除数据,为了误删除数据,一般做法都是先查询要删除的数据,,然后再将查出的数据删除。

db.getCollection('example_data_1').find({"hello":"world"})
先查询出需要删除的数据

再把find修改为deleteOne,只删除第一条满足要求的数据,或者把find修改为deleteMany,如果要删除所有满足要求的数据。

在返回的数据中,”acknowledged“:true 表示删除成功,deletedCount:表示一共删除几条数据。

再次查询

没有数据。

AttentionsPlease

  一般工程会使用”假删除“,为数据增加”deleted“字段,如果为0表示没有删除,值为1为已经删除。

9 去重操作,和mysql使用相同的关键字distinct()

db.getCollection("example_data_1").distinct("age")

对特定条件数据去重

db.getCollection("example_data_1").distinct("age",{‘age’:{"$gte":10}})

左手Mongodb右手Redis 第三章mongdb操作的更多相关文章

  1. 左手Mongodb右手Redis redis操作

    set key value  设置key的值 get key 取得key的值 decr key 值会减一 incr key 值会加一 decrby key value ,会让key的值减少value. ...

  2. 左手Mongodb右手Redis 第一章,进入Mongodb和Redis的世界

    ---恢复内容开始--- 1,为什么要使用非关系型数据库,关系型数据库咋滴,不能用嘛? 存在即合理,非关系型数据库的出现,那说明关系型数据库不适用了. 非关系型数据库(NOSQL)-->Not ...

  3. 左手Mongodb右手Redis

    第二章,了解Mongodb保存数据 Mongodb对于每次插入的数据没有要求,字段可以随便变动,字段类型可以随意变动. Mongodb可以并发插入上万条文档,这是传统关系型数据库不能望其项背的. 1. ...

  4. 左手Mongodb右手Redis 通过python连接mongodb

    首先需要安装第三方包pymongo pip install pymongodb """ 通过python连接mongodb数据库 首先需要初始化数据库连接 "& ...

  5. 第三章 JavaScript操作BOM对象

    第三章   JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...

  6. 2 python第三章文件操作

    1.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成立 els ...

  7. jQuery 实战读书笔记之第三章:操作 jQuery 集合

    创建新 HTML 元素 $('<div>Hello</div>'); /* 创建等价的空 div 元素 */ $('<div>'); $('<div /> ...

  8. JQuery制作网页—— 第三章 JavaScript操作DOM对象

    1. DOM:Document Object Model(文档对象模型):          DOM操作:                   ●DOM是Document Object Model的缩 ...

  9. 第三章 JavaScript操作Dom对象

    常用的方法: 1.访问节点: 通过Document.getElementByXXX()获得一个指定节点-->再通过以下属性节点访问节点:第一部分:节点属性a:parentNode 返回节点的父节 ...

随机推荐

  1. Fitness初接触

    http://www.fitnesse.org/FitNesseDownload 1. Click on the most recent fitnesse-standalone.jar file an ...

  2. python +requests 爬虫-爬取图片并进行下载到本地

    因为写12306抢票脚本需要用到爬虫技术下载验证码并进行定位点击所以这章主要讲解,爬虫,从网页上爬取图片并进行下载到本地   爬虫实现方式: 1.首先选取你需要的抓取的URL:2.将这些URL放入待抓 ...

  3. C# 栈=>随时读取栈中最小值

    //原理:利用两个栈,一个记录最小值,一个记录数据. using System; using System.Collections.Generic; using System.Linq; using ...

  4. HashMap之扰动函数和低位掩码

    我们都知道,hashMap在实现的时候,为了寻找在数组上的位置,主要做了两件事 int hash = hash(key); int i = indexFor(key, table.length); 这 ...

  5. [Linux] 004 安装

    1. 安装欢迎界面 Install or upgrade an existing system 安装或升级现有系统 Install system with basic video driver 安装过 ...

  6. Python入门习题3.天天向上

    例3.1 一年365天,以第一天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1%,当没有学习时能力值相比前一天下降1%.每天努力(dayup)和每天放任(daydown),一年下来的能 ...

  7. Codeforces - 1194D - 1-2-K Game - dp

    https://codeforc.es/contest/1194/problem/D 打个n=30的表好像看出了规律. 其实假设k==3,那么 sg[0]=0, sg[1]=mex{sg[0]}=1, ...

  8. python学习第八天二进制和字符编码有关联

    计算机所能识别只有0,1这两种状态,但是我们人类用字母,汉字,还有其他语言,那么怎么和计算机进行沟通呢,python编程语言最早unicode,现在统一用utf8,UTF8通用的编码语言,所有语言都包 ...

  9. linux上执行jmeter脚本

    1.linux上安装jmeter 将windows上的zip包直接放到linux上 进入bin目录,chmod 777 jmeter 修改环境变量: 1 2 3 4 # vim /etc/profil ...

  10. jxl读取excel浮点数据时,小数点后三位截取问题

    今天导入Excel数据时,发现很多浮点数据被自动四舍五入只保留了三位,原来是jxl里对getContents()进行了封装,对数值型数据作了该处理.一般我们会对读取excel的一整套流程作为工具类,那 ...