我正在对数据库运行两个不同的查询,但是,一个查询运行得非常快,调用/使用了所有相关的索引,而另一个查询又添加了一个要搜索的字段,速度非常慢。如果您有解决办法,请告诉我。
这是运行速度非常快的
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' } }
]
})
感谢您的帮助