从查询生成器创建并运行以下查询显示10条结果记录。如果我在IntelliShell中运行相同的代码,我什么都没收到?我错过了什么?
更简单的一个再次有效。
db.user.find({
em: {
$regex: '.*\Qdirk\E.*',
$options: 'i'
}
})
像这样的更简单的一个再次起作用。 MongoChef是否存在$ regex的问题......
db.user.find({em: "dirk@test.com"})
答案 0 :(得分:0)
请注意,您在这里遇到了一个非常特殊的案例。 \Q ... \E
的使用要求正则表达式以斜杠形式给出,而不是单引号。也就是说,查询必须为 db.user.find({ em: { $regex: /.*\Qdirk\E.*/, $options: 'i'}})
,或者只是 db.user.find({ em: /.*\Qdirk\E.*/i })
。
请注意,这不是MongoChef中的问题,但是MongoDB shell本身需要在 \Q
和 {{1时使用斜杠表单正则表达式中使用了,而MongoChef的IntelliShell基于MongoDB shell。
虽然MongoChef中的Collection View和Query Builder将很乐意处理任何一个表单,但是MongoChef中的图形查询生成器生成的查询文本已在upcoming 3.4.0 release中得到增强,以便始终生成斜杠表单,这将提供一致的结果,然后将该查询复制并粘贴到IntelliShell或基本的MongoDB shell中。
感谢您使用MongoChef!