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

问题描述 投票:0回答:1

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

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

db.user.find({

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

像这样更简单的一个再次工作。 MongoChef是否与$ regex有问题...

db.user.find({em: "[email protected]"})
javascript mongodb studio3t
1个回答
0
投票

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

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

虽然MongoChef中的Collection View和Query Builder将很乐意处理任何一种形式,但是由MongoChef中的图形查询生成器生成的查询文本已经在upcoming 3.4.0 release中得到增强,以便始终生成斜杠表单,如果该查询是复制的话,将提供一致的结果并粘贴到IntelliShell或基本的MongoDB shell中。

感谢您使用MongoChef!

© www.soinside.com 2019 - 2024. All rights reserved.