代码编织梦想

1. 用法(Usages)

db.collectionNamedb.getCollection('collectionName') 都表示指定某个 Collection

1.1 匹配某个字段是否存在

// 仅查询某个字段查询存在的记录
db.collectionName.find({"field name":{$exists:true}});

// 仅查询某个字段查询不存在的记录
db.collectionName.find({"field name":{$exists:false}});

1.2 匹配某个字段为 null

// 仅查询某个字段为空的记录
// 既然为 null 那么就表示该字段一定存在
db.collectionName.find({"field name":{$exists: true, $eq: null}})
  • 需要注意与 1.4 过滤某个字段为 null 或不存在 的区别;
  • Mongo 中,为 null 的数据必存在;

1.3 匹配某个字段不为 null 且存在

// 仅查询某个字段为不为空且存在的记录
db.collectionName.find({"field name":{$ne:null}});

【注】其实就是 1.4 过滤某个字段为 null 或不存在 的取反。

1.4 匹配某个字段为 null 或不存在

会把字段 不存在 和 字段为 null 的数据都匹配到。

db.collectionName.find({"field name":null});

// 与上面语句一样的效果
db.collectionName.find({"field name":{$eq:null}});

2. 示例(Examples)

插入测试数据:

db.getCollection("null_demo").insert( {
    name: "张三",
    gender: 0,
    address: "上海市"
} );

db.getCollection("null_demo").insert( {
    name: "李四",
    gender: 0 
    // 没有 address 字段
} );

db.getCollection("null_demo").insert( {
    name: "王五",
    gender: 0,
    address: null // address 字段为 null
} );

查询插入的测试数据:

db.null_demo.find()

查询结果:

_idnamegenderaddress
64681d503902000019003aa2张三0上海市
64681e003902000019003aa3李四0(N/A)
64681e1d3902000019003aa4王五0(Null)

【注】N/A:不适用的(Not Applicable)。

2.1 匹配 address 字段是否存在

// 仅查询某个字段查询存在的记录
db.null_demo.find({"address":{$exists:true}});

输出如下:

_idnamegenderaddress
64681d503902000019003aa2张三0上海市
64681e1d3902000019003aa4王五0(Null)
// 仅查询某个字段查询不存在的记录
db.null_demo.find({"address":{$exists:false}});

输出如下:

_idnamegender
64681e003902000019003aa3李四0

2.2 匹配 address 字段为 null

// 仅查询某个字段为空的记录
db.null_demo.find({"address":{$exists: true, $eq: null}})

输出如下:

_idnamegenderaddress
64681e1d3902000019003aa4王五0(Null)

2.3 匹配 address 字段不为 null 且存在

// 仅查询某个字段为不为空且存在的记录
db.null_demo.find({"address":{$ne:null}});

输出如下:

_idnamegenderaddress
64681d503902000019003aa2张三0上海市

2.4 匹配 address 为 null 或 不存在

db.null_demo.find({"address":null});

// 与上面语句一样的效果
db.null_demo.find({"address":{$eq:null}});

输出如下:

_idnamegenderaddress
64681e003902000019003aa3李四0(N/A)
64681e1d3902000019003aa4王五0(Null)

End!

个人博客:Roc’s Blog

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/peng2hui1314/article/details/130593503

查找数组字段不为空的MongoDB记录-爱代码爱编程

本文翻译自:Find MongoDB records where array field is not empty All of my records have a field called "pictures". 我所有的记录都有一个名为“图片”的字段。 This field is an array of strings. 该字段是字符串数组。

Java连接mongoDB聚合分组查询返回指定参数存在的一些问题-爱代码爱编程

单条件分组求和 mysql数据库 java代码此处就忽略了 类似mysql的失去了语句如下 select goodsName,sum(net)from weightingDataDetail group by goodsName sql执行成功后返回的数据应该是 goodsNamenet物料1300物料2500 是可以直接映射到对象返回给前端

技术分享| MongoDB如何查询Null或不存在的字段?-爱代码爱编程

在MongoDB中不同的查询操作符对于null值处理方式不同。 本文提供了使用mongo shell中的db.collection.find() 方法查询null值的操作案例。案例中使用的inventory集合数据可以通过下面的语句产生。 db.inventory.insertMany([ { _id: 1, item: null }, { _id:

如何在mongodb中检查字段是否存在_mongodb查询字段是否存在-爱代码爱编程

导读在这篇文章中,我们讨论了如何在MongoDB中检查字段是否存在。我们使用可以使用一个基本的查询来检查一个字段是否存在。也采用了com.mongodb.client.model.Filters和Document查询方法来检查字段的存在。 大家好,我是指北君。 在本文中,我们来聊聊如何在 MongoDB 中检查一个字段是否存在。 首先,我们需要创建一

mongodb查询空字段或缺失字段_mongodb查询字段为空-爱代码爱编程

查询空字段或缺失字段 在MongoDB数据库中,缺失字段和null值是处理数据缺失或无效值的关键概念。对于MongoDB用户而言,对这两个概念的深入了解将有助于优化数据查询和处理过程。本文将详细解析MongoDB中的缺失字

python安装mongodb与运算符优先级-爱代码爱编程

python安装MongoDB  MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON)。 PyMongo Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接。 pip 安装 pip 是一个通用的 Python 包管理工具,提供了对 Pyt

mongodb 面试题-爱代码爱编程

MongoDB 面试题 1. 什么是MongoDB? MongoDB是一种非关系型数据库,被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活,支持动态查询和索引,也支持BS

springboot中使用mongodb进行简单的查询-爱代码爱编程

文章目录 引言依赖配置文件代码编写1、实体类2、使用repository查询3、使用MongoTemplate查询 引言 应用程序中,通常会使用两种数据库,一种是关系型数据库如mysq

对mongodb说hello会得到什么-爱代码爱编程

程序员开始学习一门新的语言,编写的第一段程序往往是打印出“hello world!”. print("Hello world!") echo "Hello World!" 编程,从hello入门,打印出hello world,表示程序在开发人员手里向人类世界说出了第一句话,你好,世界。对程序来说,开发人员塑造了它全世界的样子。Hello world,

brew 安装使用 mysql、redis、mongodb_brew安装mongodb-爱代码爱编程

在 Mac 生态中 brew 真是个万能神器,今天就来介绍一下怎么使用 brew 安装 mysql、redis、mongodb,以及如何使用 brew 启动、关闭、重启这些服务。 前言 brew 常用命令 #