在Mongodb Compass中使用过滤器时无结果

时间:2018-07-30 18:37:38

标签: mongodb mongodb-compass

我正在尝试在MongoDB Compass中进行一些基本过滤,但是我一直没有得到任何结果。这是一个没有过滤的示例

enter image description here

这是过滤

enter image description here

我尝试了以下过滤器,但它们都不起作用:

{"INSTALL_TYPE" : /.*vpos.*/}
{"DIVISION" : /.*20.*/}
{"DIVISION" : "20"}

但是,在同一数据库的另一个表中,搜索工作正常。

enter image description here

为什么我尝试在这张表的MongoDB Compass中进行过滤时没有结果?

2 个答案:

答案 0 :(得分:1)

具体来说,包含引号的列名将使Compass的行为符合OP所述。 如果您的CSV如下所示:

"INCIDENT_ID"
"2016376978"

导入指南针。请注意,列标题包含双引号,因此过滤器不会产生结果。 column name includes double-quotes, filter results in 0 rows

我没有按照接受的答案更改任何。我只更改了列标题,所以我的CSV如下所示:

INCIDENT_ID
"2016376978"

现在导入集合意味着列标题将不带引号,并且相同的过滤器不会产生结果(即使值本身包含双引号): column name does not contain double-quotes so a filter works

编辑

为澄清起见,您在导入之前,您可能仍想从CSV 中删除双引号。就我而言,从中删除双引号会很方便并且更接近我的期望。

但是,指南针查询不是不必要;如果仅去除其列名的引号,则OP的原始正则表达式查询将返回结果: regex queries will find results even if result values have double-quotes

答案 1 :(得分:0)

此问题是由于字符串中带有引号引起的。从Oracle SQL导出表时,引号会包裹一些值。然后,当我导入CSV时,其所有值都包装起来的CSV引用了导入的罚款。但是,当导入仅某些值带有引号的CSV时,会导致这些条目在字符串内带有引号。

清除所有引号的CSV文件,清空表并重新导入CSV,使所有条目不再具有引号。现在,过滤工作正常。