【发布时间】:2016-08-26 18:46:08
【问题描述】:
我有以下ServiceProvider 收藏。
{
"_id" : ObjectId("5724a838588aeca6158b4567"),
"ServiceProviderID" : 3,
"Title" : "test1",
"PostedMessage" : "test1",
"TotalComments" : 0,
"TotalShares" : 0,
"TotalThanks" : 0,
"AddedOn" : "2016-04-30",
"LastModifiedOn" : "2016-04-30 12:42:32",
"PostAttachment" : {
"ImagePath" : ""
},
"PostCommentUserIDs" : [
"3"
],
"PostComments" : [
{ // Only want this array to return
"ID" : "1462020155845421948",
"UserID" : 3,
"CommentMessage" : "1",
"TotalThanks" : 0,
"AddedOn" : "2016-04-30 12:42:35",
"LastModifiedOn" : "2016-04-30 12:42:35",
"CommentAttachment" : {
"ImagePath" : ""
}
},
{
"ID" : "14620201551142120893",
"UserID" : 3,
"CommentMessage" : "2",
"TotalThanks" : 0,
"AddedOn" : "2016-04-30 12:42:35",
"LastModifiedOn" : "2016-04-30 12:42:35",
"CommentAttachment" : {
"ImagePath" : ""
}
},
{
"ID" : "14620201561666853653",
"UserID" : 3,
"CommentMessage" : "3",
"TotalThanks" : 0,
"AddedOn" : "2016-04-30 12:42:36",
"LastModifiedOn" : "2016-04-30 12:42:36",
"CommentAttachment" : {
"ImagePath" : ""
}
}
],
"Subscriber" : [ ]
}
如何通过 ID 字段仅获取 PostComments 子文档数组。
我尝试了以下查询:
db.ServiceProvider.find({
"_id" : ObjectId('5724a838588aeca6158b4567'),
"PostComments.ID":"1462020155845421948"
},{
"_id": 0,
"PostComments" :{
"$elemMatch":{
"PostComments.ID" : "1462020155845421948"
}
}
})
但它不起作用。任何人都可以请帮忙。谢谢!
编辑:
我只想返回以下 PostComments 子文档数组:
{
"ID" : "1462020155845421948",
"UserID" : 3,
"CommentMessage" : "1",
"TotalThanks" : 0,
"AddedOn" : "2016-04-30 12:42:35",
"LastModifiedOn" : "2016-04-30 12:42:35",
"CommentAttachment" : {
"ImagePath" : ""
}
},
【问题讨论】:
-
您能否发布预期的输出与您通过上述查询得到的结果?
-
我从查询中得到空数组。我已经更新了问题并添加了预期的结果。请看一看。
标签: mongodb subdocument