Java查询mongodb时间_减少mongodb查询(使用查找)执行时间

大家好,

我正在和mongodb一起工作 . 我有一个集合名称预订,共有19,000份文件 . 我的查询需要3秒才能执行,我只想要每个查询只有20条记录 . 我在查询中有多个查找 .

我添加了索引如下:

{

status: 1,

end_date_timestamp: 1,

is_visible: 1,

arrival_date_time: 1

}

我的mongodb查询日志如下:

{

aggregate: "bookings",

pipeline: [

{ $lookup:

{

localField: "uid",

from: "users",

foreignField: "_id",

as: "customer_info"

}

},

{ $unwind: "$customer_info" },

{ $lookup:

{

foreignField: "_id",

as: "provider_info",

localField: "provider_ids",

from: "users"

}

},

{ $match:

{ status: { $in: [ 0, 6, 7, 8 ] },

end_date_timestamp: { $gte: 1539839212 },

is_visible: true,

customer_info.status: { $ne: 9 },

provider_info.status: { $ne: 9 } }

},

{ $lookup:

{

localField: "address_id",

from: "user_addresses",

foreignField: "_id",

as: "address"

}

}, { $unwind: "$address" },

{ $sort: { arrival_date_time: 1 } },

{ $skip: 0 },

{ $limit: 20 },

{ $project:

{

reminder_before_day_hour_time: 0,

customer_info.apt_no: 0,

customer_info.invitation_sent: 0,

provider_info.password: 0,

}

}

],

cursor: {},

$readPreference:

{ mode: "secondaryPreferred" },

$db: "ironetwork_bk_db" }

planSummary: IXSCAN

{

status: 1,

end_date_timestamp: 1,

is_visible: 1,

arrival_date_time: 1

}

keysExamined:16281

docsExamined:16277

hasSortStage:1

cursorExhausted:1

numYields:183

nreturned:20

reslen:102932

locks:{

Global:

{ acquireCount: { r: 97909 } },

Database:

{ acquireCount: { r: 97909 } },

Collection:

{ acquireCount: { r: 97908 } }

}

protocol:op_query 3352ms

请建议我如何减少查询执行时间?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值