Javascript MongoDB搜索不返回相同字符串的文档

Javascript MongoDB搜索不返回相同字符串的文档,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有一个非常奇怪的问题,两个看似相同的字符串在MongoDB中返回不同的匹配 我复制并粘贴了下面的两个(显然不同)字符串,两边都有引号(直接来自Robo3T),以突出显示可能存在的任何空白-其中没有可见的空白 "KUWAIT: Premier League" "KUWAIT: Premier League" 使用其中一个字符串搜索将返回一组文档,使用另一个字符串搜索将返回另一组文档。这两组文档应作为一个文档返回 这开始让我头疼,因为我将字符串存储在另一个动态查找的集合中,有一半的时间它不匹配

我有一个非常奇怪的问题,两个看似相同的字符串在MongoDB中返回不同的匹配

我复制并粘贴了下面的两个(显然不同)字符串,两边都有引号(直接来自Robo3T),以突出显示可能存在的任何空白-其中没有可见的空白

"KUWAIT: Premier League"
"KUWAIT: Premier League"
使用其中一个字符串搜索将返回一组文档,使用另一个字符串搜索将返回另一组文档。这两组文档应作为一个文档返回

这开始让我头疼,因为我将字符串存储在另一个动态查找的集合中,有一半的时间它不匹配

我是否可以验证问题所在?我查看了BSON类型,只能看到一个字符串
$type
,Robo3T证实了这一点

使用Mongoose和Robo3T查询时存在问题


谢谢。

使用MongoPlayground,我可以在这个问题上进行合乎逻辑的下一步,并解决了这个问题

我冒险来到,注意到空格被保存为
%A0
,而不是
%20
——我不知道这是可能的

所以我只需要在我的收藏中用
%20
替换所有
%A0
\u00a0
)就可以了

另一方面,MongoDB不允许您使用
\u
查询那些Unicode间隙,即
{$regex:/.*\uxxx.*/}
。您必须使用
{$regex:/.*\x{xxxx}.*/}
,我在这里发现了它:

我很惊讶,在将文档保存为潜在问题时,它没有标记在任何地方-这至少是一个有用的警告-但我至少现在可以修复我的问题


感谢您的评论为我指明了正确的方向。

您能提供一个可复制的示例吗?在docker图像上或作为带有某些数据的docker图像。您是否排除了字符串中存在不可见或外观类似的Unicode字符?在Python中,您可以使用
repr
检查以前没有使用过的Python,但两个字符串的.length都是相同的,这是检查隐藏的非宽度Unicode的一种简单方法。。我将尝试整理出一个可复制的样本……我以前从未见过mongoplayground.net。他们在空格字符的格式中发现了str.length没有发现的东西。。没有进一步的指导,但在网站上。。。