mongodb robomongo在另一个字段中按值查询

时间:2016-06-01 08:43:24

标签: regex mongodb find pcre robo3t

我想做一个正则表达式查询:'find'查找记录,其中address包含特定于每条记录的另一个值的一部分。

例如,我有两种类型的记录,我想在

上过滤
{
    "address": "Street POST-CODE1"
    "postcode": "POST-CODE1"
},
{
    "address": "Street"
    "postcode": "POST-CODE1"
}

我想写一个例子

的查询
{ address: { $regex: /this.postcode/i } }

但我不知道如何在正则表达式中引用这个值。

1 个答案:

答案 0 :(得分:0)

您可以使用$ where。请注意,它可能非常慢(必须在每条记录上执行Javascript代码),所以如果可以,请与索引查询结合使用。

我对javascript不太熟悉,但是这里有:

使用正则表达式:

    db.getCollection('col').find(
    {
        $where: function()
        {
            var pattern = new RegExp(this.postcode,"i");
            return (this.address.search(pattern )>-1);
        }
    }); 

另一种方式:

db.getCollection('col').find({ $where: "this.address.indexOf(this.postcode) >= 0" } );