MongoDB 常用运算符

$eq = (等于)

$gt > (大于)

$gte >= (大于等于)

$lt < (小于)

$lte <= (小于等于)

$ne != (不等于)

$in in (in)

$nin !in (not in)

参考:https://docs.mongodb.com/manual/reference/operator/query/

$eq

语法:

{ <field>: { $eq: <value> } }

1、匹配文档值

如果指定的是文档,则文档中的字段顺序很重要。

2、匹配数组值

如果指定的是一个数组,则MongoDB将匹配数组的文档完全匹配,或者包含与数组完全匹配的元素。 元素的顺序很重要。

示例:

inventory 库存清单

{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
{ _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }12345

等于指定值

以下示例查询清单集合以选择其中qty字段的值等于20的所有文档:

db.inventory.find( { qty: { $eq: 20 } } )1

查询匹配以下文档:

{ _id: 2, item: { name: “cd”, code:123}, qty: 20, tags: [B] } 
{ _id: 5, item: { name: “mn”, code:000}, qty: 20, tags: [ [A,B],C] }

嵌入文档中的字段等于值

以下示例查询库存集以选择所有文档,其中项目文档中名称字段的值等于“ab”。 要在嵌入文档中的字段上指定条件,请使用点符号。

db.inventory.find({"item.name":{$eq:"ab"}})1

查询结果:

{ _id: 1, item: { name: “ab”, code: “123” }, qty: 15, tags: [ “A”, “B”, “C” ] }

数组元素等于值

以下示例查询清单集合以选择标签数组包含值为“B”的元素的所有文档[1]:

db.inventory.find({tags:{$eq:"B"}})1

查询结果:

{ _id: 1, item: { name: “ab”, code: “123” }, qty: 15, tags: [ “A”, “B”, “C” ] }
{ _id: 2, item: { name: “cd”, code: “123” }, qty: 20, tags: [ “B” ] }
{ _id: 3, item: { name: “ij”, code: “456” }, qty: 25, tags: [ “A”, “B” ] }
{ _id: 4, item: { name: “xy”, code: “456” }, qty: 30, tags: [ “B”, “A” ] }

等于数组值

以下示例查询清单集合以选择所有文档,其中标签数组等于指定数组或标签数组包含一个等于数组[“A”,“B”]的元素。

db.inventory.find({tags:{$eq:["A","B"]}})

查询结果:

{ _id: 3, item: { name: “ij”, code: “456” }, qty: 25, tags: [ “A”, “B” ] }
{ _id: 5, item: { name: “mn”, code: “000” }, qty: 20, tags: [ [ “A”, “B” ], “C” ] }

$gt >

语法:

{field: {$gt: value}}

$ gt选择字段的值大于(即>)指定值的文档。

示例:

此查询将选择库存集合中qty字段值大于20的所有文档。

db.inventory.find({qty:{$gt:20}})

特别注意点:

query["reward.checkername"] = { "$eq": undefined }

如果checkername是mongoose.SchemaTypes.ObjectId类型的,上面的写法就会有问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

myeclipse使用git图文教程

Git介绍与使用 1、什么是Git Git是分布式版本控制系统 Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 2、集中式版本控制系统&#xff08;CVS / SVN等&#xff09; 集中式版本控制系统&#xff0c;版本库是集中存放在中央服务器…

汇编64讲(搞免杀、破解必看)

希望大家喜欢!每个课程有1个小时 学完包你会免杀,免的出神入画.....-_-!http://219.144.186.220/hbywjjk/下载地址&#xff08;也可以在线观看&#xff09;mms://221.11.20.228/hbywjjk/1/000.asfmms://221.11.20.228/hbywjjk/2/000.asfmms://221.11.20.228/hbywjjk/3/000.asfm…

centos 安装pm2

npm install -g pm2whereis pm2 pm2: /opt/nodejs/bin/pm2sudo ln -s /opt/nodejs/bin/pm2 /usr/bin/pm2

android Animation 动画。淡出动画

淡出动画 protected void startHotelNearByIconAnim() {AlphaAnimation alphaAnimation new AlphaAnimation(1, 0);//初始化操作&#xff0c;参数传入0和1&#xff0c;即由透明度0变化到透明度为1alphaAnimation.setFillAfter(true);//动画结束后保持状态alphaAnimation.setD…

Java内存模型_基础

线程之间的通信机制有两种&#xff1a; 1、共享内存&#xff1a;线程之间共享程序的公共状态&#xff0c;通过写-读内存中的公共状态进行隐式的通信。 2、消息传递&#xff1a;线程之间没有公共状态&#xff0c;线程之间必须发送消息来显示的进行通信 同步&#xff1a;是指程序…

警惕Oracle DB操作高压线

在日常的数据库技术支持工作中&#xff0c;会发现相当部分的数据库事故和人为操作不当有直接的关系。每次的新员工培训&#xff0c;也会用真实案例来说明和强调正确操作习惯的重要性。在强调职业化&#xff0c;推行可服务性的大环境下&#xff0c;了解数据库操作的高压线&#…

centos 宝塔面板 mongodb 设置用户账号密码登录

挂在网上的mongodb测试数据库&#xff0c;默认的无密码&#xff0c;端口直接登录&#xff0c;本来想着不会有人盯上吧&#xff0c;结果&#xff0c;一个月后&#xff0c;被黑客删库了&#xff0c;所以不管是接口&#xff0c;还是数据库的安全性一定要保证&#xff01;&#xff…

android 日期选择器

//出生年月设置 private void birthSetting() {Calendar calendar Calendar.getInstance();calendar.add(Calendar.DAY_OF_YEAR, 1);new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {Overridepublic void onDateSet(DatePicker view, int year, in…

启动activity的标准的action常量及对应的字符串

转载于:https://www.cnblogs.com/ouyangping/p/7481700.html

数据批量导入Oracle数据库

仓库选择使用的加载方法&#xff0c;因为它提供了最快速的途径&#xff08;DIRECT&#xff0c;PARALLEL&#xff09;。现在&#xff0c;我们抛开其理论不谈&#xff0c;用实例来使 您快速掌握SQL*LOADER的使用方法。首先&#xff0c;我们认识一下SQL*LOADER。在NT下&#xff0c…

mongoose 通过账号密码连接 Error: Password contains an illegal unescaped character

mongoose 远程连接&#xff0c;我的密码有乱七八糟的字符&#xff0c;报错Error: Password contains an illegal unescaped character 报错的 mongodb: mongodb://c666:buyaokan###ccav.com:27017/zh_db,改成下面&#xff0c;就好啦 mongodb: mongodb:// encodeURIComponent(…

android 省市区选择器

demo1链接&#xff1a;https://download.csdn.net/download/meixi_android/10819638 效果1——跳页全屏式地区选择器&#xff1a; demo2链接&#xff1a;https://download.csdn.net/download/meixi_android/10823744 样式2——dialog市区选择器&#xff1a; 实现方法&#xf…

CCF - 201703-1 - 分蛋糕

问题描述 试题编号&#xff1a; 201703-1试题名称&#xff1a; 分蛋糕时间限制&#xff1a; 1.0s内存限制&#xff1a; 256.0MB问题描述&#xff1a;   小明今天生日&#xff0c;他有n块蛋糕要分给朋友们吃&#xff0c;这n块蛋糕&#xff08;编号为1到n&#…

mongoose Topology was destroyed 处理

在用 node 的 mongoose 模块操作 mongodb 数据库的时候&#xff0c;本来正常返回数据&#xff0c;但是有时候会返回空白页&#xff0c;控制台里报错&#xff1a; Topology was destroyed数据库连接代码如下&#xff1a; var mongoose require(mongoose); mongoose.connect(m…

windows 下oracle 数据库 rman 备份

明确目标编写rman批处理文件 目标&#xff1a; A 每天夜间2点执行备份 B数据库全备&#xff0c;同时备份控制文件及归档日志文件&#xff0c;备份文件保存至&#xff1a;F:\backup\目录下&#xff0c;并在完成归档日志文件备份后&#xff0c;自动删除已备份的归档日志&#xff…