是否有可能在mongodb中通过在字段中附加randomid进行查询

时间:2019-05-31 16:33:18

标签: mongodb

我有一个字段priority,后面附加了随机产生的ex“:

"priority_123":"HIGH" ,"priority_234"..."HIGH"

我想以某种方式使用正则表达式查询优先级字段的值 {"priority_":"HIGH"}

是否可以更改保存字段的结构?

请帮助我

1 个答案:

答案 0 :(得分:0)

我认为可以实现的一种(也许是唯一的)方法是使用$where运算符。

db.collection.find({
    $where: function() {
        for (var key in this) {
            if (key.indexOf('priority_') === 0 && this[key] === 'HIGH') {
                 return true
            }
        }

        return false
    }
})

尽管,正如您所知,它比常规查询要慢得多,因为它使数据库为每个文档执行JavaScript。我不建议您使用此功能,尤其是在您的收藏夹中可能有大量文档的情况下。

一个更好的方法是更改​​您的结构,就像您已经提到的那样。 也许是这样的吗?

[{
    priority: {
        salt: '123',
        value: 'HIGH',
    }
}, {
    priority: {
        salt: '234',
        value: 'HIGH',
    }
}]

db.collection.find({
    'priority.value': 'HIGH'
})