0

以下从查询生成器创建并运行的查询显示了 10 条结果记录。如果我在 IntelliShell 中运行相同的代码,我什么也没有收到?我错过了什么?

一个更简单的方法再次起作用。

db.user.find({

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

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

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

4

1 回答 1

0

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

请注意,这在 MongoChef 中不是问题,而是 MongoDB shell 本身需要在正则表达式中使用斜杠形式,\Q并且\EMongoChef 的 IntelliShell 基于 MongoDB shell。

虽然 MongoChef 中的 Collection View 和 Query Builder 将愉快地处理任一表单,但 MongoChef 中的图形查询构建器生成的查询文本在即将发布的 3.4.0 版本中得到了增强,以始终生成斜杠表单,如果那样的话,这将给出一致的结果然后将查询复制并粘贴到 IntelliShell 或基本 MongoDB shell 中。

感谢您使用 MongoChef!

于 2016-02-08T17:45:26.480 回答