0
私は以下の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" : [ ]
}
PostComments
サブフィールドをIDフィールドで取得する方法。
私は次のクエリ試してみました:
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" : ""
}
},
上記のクエリで期待されている出力を投稿することはできますか? –
私は質問から空の配列を取得しています。私は質問を更新し、期待される結果を追加しました。見てください。 – Chinmay