再添加一个属性时不使用Mongo索引

时间:2020-08-08 04:06:39

标签: mongodb indexing

我正在对数据库运行两个不同的查询,但是,一个查询运行得非常快,调用/使用了所有相关的索引,而另一个查询又添加了一个要搜索的字段,速度非常慢。如果您有解决办法,请告诉我。

这是运行速度非常快的

db.orders.find(
{
        '$or': 
            [ 
                { order_id: { '$regex': '^.*8664149', '$options': 'i' } }, 
                { ref_number: { '$regex': '^.*8664149', '$options': 'i' } }, 
                { 'ls.ref_order_number': { '$regex': '^.*8664149', '$options': 'i' } }, 
                { tracking_number: { '$regex': '^.*8664149', '$options': 'i' }}, 
                { 'customer.first_name': { '$regex': '^8664149', '$options': 'i' } }, 
                { 'customer.last_name': { '$regex': '^8664149', '$options': 'i' }  } 
                 ]
        })

但是,我也在其中搜索零售商名称的该服务器运行速度非常慢,并且也没有调用我在零售商字段上创建的索引:

db.orders.find(
{
        retailer: ObjectId("57a8d0b9eb656789de793"),
        '$or': 
            [ 
                { order_id: { '$regex': '^.*8664149', '$options': 'i' } }, 
                { ref_number: { '$regex': '^.*8664149', '$options': 'i' } }, 
                { 'ls.ref_order_number': { '$regex': '^.*8664149', '$options': 'i' } }, 
                { tracking_number: { '$regex': '^.*8664149', '$options': 'i' }}, 
                { 'customer.first_name': { '$regex': '^8664149', '$options': 'i' } }, 
                { 'customer.last_name': { '$regex': '^8664149', '$options': 'i' }  } 
                 ]
        })

感谢您的帮助

0 个答案:

没有答案
相关问题