从嵌套文档中获取字段的Mongo查询



我有一个mongo collection:

Collection :rResponse
{
"_id" : ("59c8248 "),
"correlationId" : ("b92b3 "),
"rtResponse" : {
"rTiming" : {
"servicetime" : "2020-04-17 11:50:42.1053555 (GMT-04:00)"
}

I Was trying to use find query to access service time.

db.rResponsee.rtResponse.rTiming.find( { servicetime: '2020-05-01 08:25:58.4083775 (GMT-04:00)' } );

但是它返回0行。如有任何帮助/建议,我将不胜感激。

您的语法是关闭的,并且该字段的整个路径需要出现在对find(...)的调用中:

db.rResponsee.find({
'rtResponse.rTiming.servicetime': '2020-05-01 08:25:58.4083775 (GMT-04:00)'
});
db.rResponse.find({ 'rtResponse.rTiming.servicetime': '2020-04-17 11:50:42.1053555 (GMT-04:00)' }, { 'rtResponse.rTiming.servicetime': 1 })

输出:

{
"_id" : "59c8248",
"rtResponse" : {
"rTiming" : {
"servicetime" : "2020-04-17 11:50:42.1053555 (GMT-04:00)"
}
}
}

这里我们使用。find方法来查询'servicetime',这是嵌套文档在你的情况下,使用点符号,我们正在查询它,即'rtResponse.rTiming.servicetime'。我们使用投影来指定包含哪些字段。考虑{'rtResponse.rTiming。Servicetime ': 1},其中1表示true或包含该字段。

你可以阅读更多关于。find方法在这里,和mongodb投影在这里。