在 MongoDB 中查询非空值
这篇 MongoDB 文章将解释如何在 MongoDB 中查询非空值。要查询非空值,你可以使用 $ne
运算符和 $eq
运算符,然后指定要查询的所需值。
本文向读者展示了如何使用各种方法和示例在 MongoDB 中查询非空值。所以,让我们开始这个指南。
MongoDB 中的 $ne
运算符
该运算符的语法是:
{field:{$ne:value}}
$ne
运算符选择 field
的值与给定 value
不同的所有文档。它包括不包含 field
的文档。
MongoDB 中的 $eq
运算符
此运算符指定相等条件。例如,$eq
运算符匹配 field
的值等于指定 value
的文档。
此运算符的语法是:
{<field>:{$eq:<value>}}
指定 $eq
运算符等效于使用形式 { field: <value> }
,除非 <value>
是正则表达式。
在 MongoDB 中查询 is Not Null
值
现在让我们通过查看如何实现这一目标的示例来帮助你开始。
下面是你将用来说明一些操作的集合。
db={"teams":[{team:"Manchester City",position:"1st",points:70},{team:"Liverpool",position:null,points:69},{team:"Chelsea",position:"3rd",points:59},{team:"Arsenal",position:"4th",points:null},{team:"Tottenham",position:"5th",points:51},{team:"Manchester United",position:"6th",points:50},]}
$ne
运算符查询 MongoDB 中字符串字段上的 is Not Null
值
你将使用 $ne
运算符将表达式传递给 $ne
运算符,该运算符否定特定字段的空值,以查询在本示例中不为空的字符串字段。对于此示例,你可以使用下面的查询。
db.teams.find({points:{$ne:null}})
运行上述查询时返回的结果可以在下面的屏幕截图中看到。
你发现所有没有 points
字段值指定为空的此类文档。
在 MongoDB 中 $ne
运算符的数值字段上查询 is Not Null
在这种情况下,你将选择那些没有数值字段值为空的文档。对于此示例,你可以使用下面的查询。
db.teams.find({position:{$ne:null}})
运行上述查询时返回的结果可以在下面的屏幕截图中看到。
你可以再次在 position 字段中找到没有 null 作为值的文档。
在 MongoDB 中 $ne
运算符查询非空值
在此示例中,你将使用带有空白字符串的 $ne
运算符来查询 MongoDB 中的非空值。
由于你在上面使用的集合没有任何此类具有空白字符串值的文档,你可以在集合中添加一些。以下文档将添加到集合中,如下所示。
db={"teams":[{team:"Manchester City",position:"1st",points:70},{team:"Liverpool",position:null,points:69},{team:"Chelsea",position:"3rd",points:59},{team:"Arsenal",position:"4th",points:null},{team:"Tottenham",position:"5th",points:51},{team:"Manchester United",position:"6th",points:50},{team:"West Ham",position:"",points:48},{team:"Wolves",position:"",points:46}]}
好的,现在你的收藏中又添加了两个文档,你可以开始了。现在你可以使用 $ne
运算符通过指定一个空白字符串来查询非空值。
对于此示例,你可以使用下面的查询。
db.teams.find({position:{$ne:""}})
运行上述代码时返回的结果可以在下面的屏幕截图中看到。
这次你无法找到新添加的文档。
在 MongoDB 中 $eq
运算符指定非 Null 值
在此示例中,你将使用 $eq
运算符来查询非空值,因为你将传递一个要查找的值,以用外行的术语查询该不是空
值。
让我们寻找排名第三的球队。对于此示例,你可以使用下面的查询。
db.teams.find({position:{$eq:"3rd"}})
运行上述代码时返回的结果可以在下面的屏幕截图中看到。
你在集合中找到了当前排名第三的团队。
因此,通过这篇 MongoDB 文章的帮助,你学习了如何使用 $ne
和 $eq
运算符查询非空值。