您可以在查询栏中输入 MongoDB 过滤器文档,仅显示符合指定标准的文档。要了解有关查询文档的详情,请参阅 MongoDB 手册中的查询文档。
兼容性
您可以对托管于以下环境中的部署进行数据进行查询:
- MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务 
- MongoDB Enterprise:基于订阅、自行管理的 MongoDB 版本 
- MongoDB Community:source-available、免费使用且可自行管理的 MongoDB 版本 
要了解有关查询 MongoDB Atlas 托管部署的数据的更多信息,请参阅查找特定文档。
设置查询筛选器
- 在 Filter(过滤器)字段中,在大括号之间输入过滤器文档。您可以使用除 - $text和- $expr操作符之外的所有 MongoDB 查询操作符。- 例子- 以下筛选器返回 - title值为- Jurassic Park的文档:- { "title": "Jurassic Park" } 
- 单击 Find(查找)运行查询,查看更新的结果。 ![应用查询过滤器的结果]() 点击放大 点击放大
注意
大整数限制
如要查询大于 JavaScript 最大整数大小的整数,请将该整数用字符串字符括起来,并将其传递给 NumberLong() 构造函数。
例如,如要查找 number 值为 507550989629521900 的所有文档,请使用此查询筛选条件:
{ "number" : NumberLong("507550989629521900") } 
示例
本页上的示例使用的是一个小型示例数据集。要将样本数据导入到 MongoDB 部署中,请执行以下步骤:
- 将以下文档复制到剪贴板: - [ - { - "name": "Andrea Le", - "email": "andrea_le@fake-mail.com", - "school": { - "name": "Northwestern" - }, - "version": 5, - "scores": [ 85, 95, 75 ], - "dateCreated": { "$date": "2003-03-26" } - }, - { - "email": "no_name@fake-mail.com", - "version": 4, - "scores": [ 90, 90, 70 ], - "dateCreated": { "$date": "2001-04-15" } - }, - { - "name": "Greg Powell", - "email": "greg_powell@fake-mail.com", - "version": 1, - "scores": [ 65, 75, 80 ], - "dateCreated": { "$date": "1999-02-10" } - } - ] 
- 在 Compass,使用左侧导航面板 选择要将数据导入的数据库和集合。 
- 单击 Documents 标签页。 
- 单击 Add Data(添加数据)并选择 Insert Document(插入文档)。 
- 将 View(视图)设置为 JSON ( - {})。
- 将剪贴板中的 JSON 文档粘贴到模态窗口中。 
- 单击 Insert(连接)。 
注意
如果您没有 MongoDB 部署,或者如果您想查询更大的示例数据集,请参阅 Atlas 集群示例数据,了解有关使用示例数据创建免费层集群的说明。以下示例查询过滤此页面提供的示例文档。
按单个条件匹配
以下查询筛选器查找 name 值为“Andrea Le”的所有文档:
{ name: "Andrea Le" } 
该查询返回以下文档:
{    "_id": { "$oid": "5e349915cebae490877d561d" },    "name": "Andrea Le",    "email": "andrea_le@fake-mail.com",    "school": {       "name": "Northwestern"    },    "version": 5,    "scores": [ 85, 95, 75 ],    "dateCreated": { "$date": "2003-03-26" } } 
按多个条件匹配 ($and)
以下查询筛选器查找 scores 数组包含值 75 且name 为 Greg Powell 的所有文档:
{ $and: [ { scores: 75, name: "Greg Powell" } ] } 
该查询返回以下文档:
{    "_id": { "$oid":"5a9427648b0beebeb69579cf" },    "name": "Greg Powell",    "email": "greg_powell@fake-mail.com",    "version": 1,    "scores": [ 65, 75, 80 ],    "dateCreated": { "$date": "1999-02-10" } } 
按多个可能条件匹配 ($or)
以下查询过滤器使用 $or 操作符查找 version 为 4 或 name 为 Andrea Le 的文档:
{ $or: [ { version: 4 }, { name: "Andrea Le" } ] } 
该查询返回以下文档:
[    {       "_id": { "$oid": "5e349915cebae490877d561d" },       "name": "Andrea Le",       "email": "andrea_le@fake-mail.com",       "school": {          "name": "Northwestern"       },       "version": 5,       "scores": [ 85, 95, 75 ],       "dateCreated": { "$date": "2003-03-26" }    },    {       "_id": { "$oid":"5e349915cebae490877d561e" },       "email": "no_name@fake-mail.com",       "version": 4,       "scores": [ 90, 90, 70 ],       "dateCreated": { "$date": "2001-04-15" }    } ] 
按排除匹配 ($not)
以下查询过滤器使用 $not 操作符查找 name 字段值不等于“Andrea Le”或 name 字段不存在的所有文档:
{ name: { $not: { $eq: "Andrea Le" } } } 
该查询返回以下文档:
[    {       "_id": { "$oid":"5e349915cebae490877d561e" },       "email": "no_name@fake-mail.com",       "version": 4,       "scores": [ 90, 90, 70 ],       "dateCreated": { "$date": "2001-04-15" }    },    {       "_id": { "$oid":"5a9427648b0beebeb69579cf" },       "name": "Greg Powell",       "email": "greg_powell@fake-mail.com",       "version": 1,       "scores": [ 65, 75, 80 ],       "dateCreated": { "$date": "1999-02-10" }    } ] 
提示
有关逻辑查询操作符的完整列表,请参阅逻辑查询操作符。
使用比较操作符进行匹配
以下查询过滤器使用 $lte 操作符查找 version 小于或等于 4 的所有文档:
{ version: { $lte: 4 } } 
该查询返回以下文档:
[    {       "_id": { "$oid":"5e349915cebae490877d561e" },       "email": "no_name@fake-mail.com",       "version": 4,       "scores": [ 90, 90, 70 ],       "dateCreated": { "$date": "2001-04-15" }    },    {       "_id": { "$oid":"5a9427648b0beebeb69579cf" },       "name": "Greg Powell",       "email": "greg_powell@fake-mail.com",       "version": 1,       "scores": [ 65, 75, 80 ],       "dateCreated": { "$date": "1999-02-10" }    } ] 
提示
有关比较操作符的完整列表,请参阅比较查询操作符。
按日期匹配
以下查询过滤器使用 $gt 操作符和 Date() 方法查找 dateCreated 字段值晚于 2000 年 6 月 22 日的所有文档:
{ dateCreated: { $gt: new Date('2000-06-22') } } 
该查询返回以下文档:
[    {       "_id": { "$oid": "5e349915cebae490877d561d" },       "name": "Andrea Le",       "email": "andrea_le@fake-mail.com",       "school": {          "name": "Northwestern"       },       "version": 5,       "scores": [ 85, 95, 75 ],       "dateCreated": { "$date": "2003-03-26" }    },    {       "_id": { "$oid": "5e349915cebae490877d561e" },       "email": "no_name@fake-mail.com",       "version": 4,       "scores": [ 90, 90, 70 ],       "dateCreated": { "$date": "2001-04-15" }    } ] 
按数组条件匹配
以下查询过滤器使用 $elemMatch 操作符查找 scores 数组中至少有一个值大于 80 且小于 90 的所有文档:
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } } 
由于 scores 数组中的一个值为 85,查询返回以下文档:
{    "_id": { "$oid": "5e349915cebae490877d561d" },    "name": "Andrea Le",    "email": "andrea_le@fake-mail.com",    "school": {       "name": "Northwestern"    },    "version": 5,    "scores": [ 85, 95, 75 ],    "dateCreated": { "$date": "2003-03-26" } } 
更多查询示例,请参阅 MongoDB 手册中的查询文档。
按子字符串匹配
以下查询过滤器使用 $regex 操作符查找 email 值包含“andrea_le”术语的所有文档:
{ email: { $regex: "andrea_le" } } 
该查询返回以下文档:
{    "_id": { "$oid": "5e349915cebae490877d561d" },    "name": "Andrea Le",    "email": "andrea_le@fake-mail.com",    "school": {       "name": "Northwestern"    },    "version": 5,    "scores": [ 85, 95, 75 ],    "dateCreated": { "$date": "2003-03-26" } } 
按嵌入式字段匹配
以下查询过滤器查找 school.name 子字段为“Northwest”的文档:
{ "school.name": "Northwestern" } 
该查询返回以下文档:
{    "_id": { "$oid": "5e349915cebae490877d561d" },    "name": "Andrea Le",    "email": "andrea_le@fake-mail.com",    "school": {       "name": "Northwestern"    },    "version": 5,    "scores": [ 85, 95, 75 ],    "dateCreated": { "$date": "2003-03-26" } } 
更多查询示例,请参阅 MongoDB 手册中的查询文档。
按特定字段和值匹配
如果文档包含您希望查询匹配的特定字段和值,您可以右键单击所需字段,然后从下拉列表中选择 Add to query:

这会将与该字段及其特定值匹配的子句添加到查询栏。在前面的示例中, Compass添加了一个与 { runtime: 72 } 匹配的查询子句。
如果您尚未定义查询, Compass会在查询栏中创建一个查询。
查询栏支持的数据类型
CompassFilter mongosh支持使用MongoDB扩展JSON BSON数据类型的 表示形式。
清除查询
要清除查询栏和查询结果,请单击 Reset。
查询包含无效 UTF8 数据的集合
如果您尝试查询或导出包含无效 UTF8 字符的数据,则会显示以下错误消息:
Invalid UTF-8 string in BSON document. 
要查询或导出该数据,请将 enableUtf8Validation URI 选项设置为 false 以禁用 UTF8 验证。
警告
如果编辑数据并设置 enableUtf8Validation=false,可能会导致数据丢失。该方法是仅查询或导出数据的临时解决方法。
以下 URI 禁用 UTF8 验证:
mongodb://localhost:27017/?enableUtf8Validation=false 
注意
您也可以在高级连接选项中禁用该选项,方法是选择 enableUtf8Validation 并输入 false。
Compass 查询与 MongoDB 和 SQL 查询相比如何?
$filter 对应于 SQL SELECT 语句中的 WHERE 子句。
例子
现有 3,235 篇文章。您想阅读 Joe Bloggs 撰写的 所有文章。
- Compass 筛选器选项
- { author : { $eq : "Joe Bloggs" } } 
- MongoDB 聚合
- db.article.aggregate( { $match: { "author": "Joe Bloggs" } } ) 
- SQL
- SELECT * FROM article - WHERE author = "Joe Bloggs"; 
