MongoChef 查询 IntelliShell 与 QueryBuilder 显示不同的结果

MongoChef Query IntelliShell versus QueryBuilder show different results

从查询生成器创建的以下查询和 运行 显示 10 个结果记录。如果我 运行 在 IntelliShell 中使用相同的代码,我不会收到任何东西吗?我错过了什么?

一个更简单的方法又可以了。

db.user.find({

    em: {
        $regex: '.*\Qdirk\E.*',
        $options: 'i' 
    }
})

像这样的更简单的方法再次起作用。 MongoChef 是否有 $regex 问题...

db.user.find({em: "dirk@test.com"})

请注意,您遇到了一个非常特殊的情况。 \Q ... \E 的使用要求正则表达式用斜杠而不是单引号给出。也就是说,查询必须是 db.user.find({ em: { $regex: /.*\Qdirk\E.*/, $options: 'i'}}) 或者只是 db.user.find({ em: /.*\Qdirk\E.*/i })

请注意,这在 MongoChef 中不是问题,但是 MongoDB shell 本身需要在 [=13= 时使用斜杠形式]\E 用于正则表达式,MongoChef 的 IntelliShell 基于 MongoDB shell.

虽然 MongoChef 中的集合视图和查询生成器可以愉快地处理任何一种形式,但 MongoChef 中图形查询生成器生成的查询文本在 upcoming 3.4.0 release 中得到了增强,始终生成斜线形式,这将如果将该查询复制并粘贴到 IntelliShell 或基本 MongoDB shell.

中,则给出一致的结果

感谢使用 MongoChef!