需要一个MongoDB查询说明

时间:2014-03-15 13:17:54

标签: regex mongodb

这是我关于stackoverflow的第一个问题所以对法国新秀要宽容;) 我必须简化MongoDB查询,今天早上我在 docs.mongodb.org 上发现了这个工具,我真的需要了解继续自学的方法。

以下是查询:

{$ and:[{x:2},{y:3},{$ and:[{z:4}]},{$ or:[{name:{$ regex:“toto。“}},{name:{$ regex:”toto。“}}]}]}

由于

1 个答案:

答案 0 :(得分:1)

基本上在SQL中它是:

x = 3 AND y = 3 AND z = 4 AND (name LIKE 'toto%' OR name LIKE 'toto%')

此查询可以大规模简化,我不确定您使用什么工具来获取此查询,但是,它可以归结为:

{x: 2, y: 3, z: 4, name: {$in: [/^toto.*/, /^toto.*/]}}

这是因为查询部分之间的默认运算符实际上是$and所以在特定情况下你只需要$and,即当你需要在字段中单独$and两个子句时或需要$and两个单独的$or,逻辑上不能放在一起(出于某种原因)。

我应该注意,在某些驱动程序中,您需要将$in替换为$or,这取决于驱动程序中的构造,但BSON正则表达式对象(不是$regex运算符)应该能够在$in条款等中运作。