您好,我有以下文档,希望根据多个条件从消息列表中提取消息。
{
"_id" : ObjectId("58df770371043e7087cdaadd"),
"prospectemailid" : "abc@gmail.com",
"prospectid" : "1491038545032",
"useremail" : "xyz@gmail.com",
"threadidslist" : [
{
"threadid" : "15b28e8e711f71b0",
"subject" : "sub",
"campaignid" : "1491460056589",
"messagelist" : [
{
"emailuniqueid" : "1492376430400",
"messageid" : "15b28e8e711f71b0",
"timestamp" : "Sat Apr 01 15:16:43 IST 2017",
"from" : "utsavanand.work@gmail.com",
"body" : "Hello",
"labelid" : "SENT",
"to" : "anuragkv10@gmail.com",
"messageidpayload" : ""
},
{
"emailuniqueid" : "1492376430400",
"messageid" : "15b28ecbcbe5b32d",
"timestamp" : "Sat Apr 01 15:20:54 IST 2017",
"from" : "anuragkv10@gmail.com",
"body" : "Hi",
"labelid" : "RECEIVED",
"to" : "utsavanand.work@gmail.com",
"messageidpayload" : "<CAL_CU77Rc27peuGde=WTC7waW3gfvS2Wr_t2A+7KBjjxsKW8Sw@mail.gmail.com>"
}
]
}
]
根据条件,期望的输出为:prospectemailid=1491038545032,useremail=xyz@gmail.com,threadidslist.campaignid=1491460056589和messagelist.emailuniqueid= 1492376430400。
{
"emailuniqueid" : "1492376430400",
"messageid" : "15b28ecbcbe5b32d",
"timestamp" : "Sat Apr 01 15:20:54 IST 2017",
"from" : "sad@gmail.com",
"body" : "Hi",
"labelid" : "RECEIVED",
"to" : asd@gmail.com",
"messageidpayload" : "<CAL_CU77Rc27peuGde=WTC7waW3gfvS2Wr_t2A+7KBjjxsKW8Sw@mail.gmail.com>"
}
感谢您..!
到目前为止,我尝试过:
db.getCollection('GD').aggregate(
[
{ $match:{
"prospectid" : "1491038545032",
"useremail" : "xyz@gmail.com",
"threadidslist.campaignid" : "1491460056589",
"threadidslist.messagelist.emailuniqueid" : "1492376430400"
}
}
])