首页 > 数据库 >mongodb--文档查询

mongodb--文档查询

时间:2023-03-31 21:44:42浏览次数:40  
标签:NAME -- mongodb db COLLECTION 查询 文档 find

一、简单查询

-- 查询所有文档
db.COLLECTION_NAME.find()
-- 将查询结果以json形式显示
db.COLLECTION_NAME.find().pretty()

二、按条件查询文档

db.COLLECTION_NAME.find(query,projection)

参数说明:

  • query:可选,
  • projection:可选,查询时返回文档中所有键值,(默认省略)

说明:

  • 按条件分为逻辑操作符和比较操作符
  • 逻辑操作符:与、或等等
  • 比较操作符:大于、小于、大于等于、小于等于、不等于、包含、不包含

语法以及举例说明:

-- 与操作符$and
db.COLLECTION_NAME.find({$and:[{<key1>:<value1>,<key2>:<value2>}]})
-- 或操作符$or
db.COLLECTION_NAME.find({$or:[{<key1>:<value1>},{<key2>:<value2>}]})

-- 等于操作符
db.COLLECTION_NAME.find({<key1>:<value1>})
-- where by = '菜鸟教程'
db.col.find({"by":"菜鸟教程"})

-- 不等于操作符$ne
db.COLLECTION_NAME.find({<key>:$ne:{<value>}})
-- where likes != 50
db.col.find({"likes":{$ne:50}})

-- 大于操作符$gt
db.COLLECTION_NAME.find({<key>:{$gt:<value>}})
-- where likes > 50
db.col.find({"likes":{$gt:50}})

-- 小于操作符$lt
db.COLLECTION_NAME.find({<key>:{$lt:<value>}})
-- where likes < 50
db.col.find({"likes":{$lt:50}})

-- 大于等于操作符$gte
db.COLLECTION_NAME.find({<key>:{$gte:<value>}})
-- where likes >= 50
db.col.find({"likes":{$gte:50}})

-- 小于等于操作符$lte
db.COLLECTION_NAME.find({<key>:{$lte:<value>}})
-- where likes <= 50
db.col.find({"likes":{$lte:50}})

-- 包含操作符$in
-- 注意:in的是一个数组
db.COLLECTION_NAME.find({<key>:{$in:[<values>]}})

-- 不包含操作符$nin
db.COLLECTION_NAME.find({<key>:{$nin:[<values>]}})

AND 与 OR 操作符联合使用

db.comment.find
({
 $and:[
	{$or:[{userid:"1001"},{userid:"1003"}]},{$or:[{userid:"1001"},{userid:"1003"}]}
      ]
 })

 

三、按特定类型查询文档

1、NULL类型查询

-- NULL类型查询,查询字段值为null的文档
db.COLLECTION_NAME.find({<key>:null})

2、正则表达式查询

-- 查询符合某个规则的文档
db.COLLECTION_NAME.find({<key>:/正则表达式/})
db.COLLECTION_NAME.find({<key>:{$regex:/正则表达式/}})

说明:举例

-- $匹配输入字符串结尾位置
db.comment.find({content:{$regex:/水$/}})

-- ^匹配输入字符串开始位置
db.comment.find({content:{$regex:/^专家/}})

-- 匹配带有 凉开水 的
db.comment.find({content:{$regex:/凉开水/}})

-- 正则表达式自己搜索

3、嵌套文档查询之子文档精确查询

-- 用于在集合中指定子文档,查询符合条件的文档
db.COLLECTION_NAME.find({<key>:{<key1>:<value1>,<key2>:<value2>}})

 4、嵌套文档查询之点查询

-- 用于集合中指定子文档中一个字段,查询包含该字段的文档
db.COLLECTION_NAME.find({<key>.<key1>:<value>})
-- 属性.子属性

 

标签:NAME,--,mongodb,db,COLLECTION,查询,文档,find
From: https://www.cnblogs.com/hyy-0/p/17277494.html

相关文章

  • Codeforces Round 859 (Div. 4) ABCDE(交互题)FG1G2
    EFG1G2质量还挺好的A.PlusorMinushttps://codeforces.com/contest/1807/problem/A题目大意:给定a,b,c,问我们是a+b==c还是a-b==c?把正确的符号输出。input1112332129-7347112110336991899019-81910output+--++-++--+......
  • VUE分别使用普通方法、计算属性、监听器完成简易计算器
    VUE分别使用普通方法、计算属性、监听器完成简易计算器声明:本方法使用VUE完整框架独立模块组件来实现TOP:实现效果Ⅰ:完整框架Ⅱ:框架实现案例组件功能细分1.APP组件总组件,管理所有组件(每个单独的组件最后都汇总到APP组件里,便于管理)管理汇总:Methodss组件、Watchss......
  • Flask快速入门day 01(flask介绍、快速使用、配置文件、路由系统)
    目录Flask框架前言:一、flask介绍1、介绍2、使用两种协议编写web二、flask快速使用1、快速使用:2、使用flask编写登录小案例2.1login.html2.2home.html2.3detail.html2.4py文件三、flask配置文件1、配置文件的几种方式方式一:直接编写方式二:使用app.config方式三:使用py文件,然后......
  • SpringMVC 中常用注解
    1、控制器类的注解(1)@Controller作用:修饰类,一个类被它修饰,就成了控制器类,负责接收和处理HTTP请求,可以返回页面和数据;(2)@RestController(@Controller+@ResponseBody的组合注解)作用:修饰类,一个类被它修饰,就成了控制器类,只返回给用户数据,默认将返回的对象数据转换为jso......
  • java 中 Stack 已不推荐使用,应该用什么代替?
    为什么不推荐用Stack?java中Stack已被“废弃”,主要是因为其性能低。Stack继承自Vector,而Vector在每个方法中都加了锁,因此Stack性能低下。详细分析:算法动画图解|被"废弃"的Java栈,为什么还在用-知乎用什么代替Stack?建议使用Deque<Integer>stack=newArrayDe......
  • selenium之关闭窗口,指定窗口大小,前进,后退,刷新等操作
    关闭窗口1、仅关闭当前窗口(Tab页),其他窗口不退出关闭用户当前正在使用的Web浏览器窗口,即WebDriver当前正在访问的窗口。.close()方法既不需要任何参数,也无任何返回值。driver.close()相当于浏览器中每个Tab页中的叉叉。2、关闭所有的浏览器窗口(WebDriver初始化的整个浏览器进程)同于......
  • 通过Sysmon+Nxlogs收集Windows Server 2012服务器日志-并以Syslog形式发送Json格式数
    0x01环境介绍WindowsServer2012已经安装部署好了域控,目的除了收集Windows服务器本身的日志外还收集域控环境下的各种日志。0x02Nxlog配置和使用使用社区版本即可,下载地址:https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition使用的版本是当前最新版本安装过程就省略,......
  • 插件模式 bug优化2
    目前客户的现象很经典,某一个核cpu打满了!网卡开启了RSS,每个work都绑定了一个cpu。使用strace分析的时候,发现使用总是某一个线程被唤醒,然后这个work一直都在处理io事件。--这个问题原因就是惊群导致。详细就不写了,具体看内核就可知。主要是应用层的问题:由于代码比较老,里面很多......
  • 数据结构:栈的进出
    进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的出栈序列是(C)A、1,2,3,4 B、2,3,1,4 C、3,1,2,4 D、4,3,2,1[========]栈是先进后出。如果4先出,那么就是全部入栈了,只有4321一种情况。如果3先出,那么4还没有入栈,此时栈内只有1,2,3,出栈必有3→2→1的顺序,4可以在3,2,......
  • CF1187E
     换根dp#include<iostream>#include<algorithm>#include<cstring>#include<queue>#defineIOSstd::ios::sync_with_stdio(0)usingnamespacestd;#defineintlonglongconstintN=2e5+20;intn,sz[N],f[N],G[N];vector<int>g[......