【发布时间】:2020-02-23 01:27:45
【问题描述】:
我有文件
{
"_id" : ObjectId("5da832caeb173112348e509b"),
"owner" : {
"image" : "5d999578aeb073247de4bd6e.jpg",
"fullname" : "hem sopheap",
"userID" : "5d999578aeb073247de4bd6e"
},
"project" : {},
"image" : "hem sopheap-1571304138866.png",
"body" : "Lorem Ipsum "),
"comments" : [
{
"user" : "5d999578aeb073247de4bd6e",
"fullname" : "hem sopheap",
"username" : "sopheap",
"comment" : "1000000",
"_id" : ObjectId("5db07900ae100b0c05b1222c"),
"replies" : [],
"date" : ISODate("2019-10-23T15:40:57.535Z"),
"likes" : [
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044"
]
},
{
"user" : "5d999578aeb073247de4bd6e",
"fullname" : "hem sopheap",
"username" : "sopheap",
"comment" : "11111111111",
"_id" : ObjectId("5db0790aae100b0c05b1222d"),
"replies" : [],
"date" : ISODate("2019-10-23T15:40:57.535Z"),
"likes" : []
}
],
"__v" : 33,
"likes" : [
"5d999578aeb073247de4bd6e"
]
}
我怎样才能得到likes,通过帖子_id和cmets_id过滤得到结果likes
"likes" : [
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044",
"5da85558886aee13e4e7f044"
]
【问题讨论】:
-
Clarity:所以你是说给定
"_id" : ObjectId("5da832caeb173112348e509b")和(使用dotpath)comments._id: ObjectId("5db07900ae100b0c05b1222c")作为查询条件,只返回likes数组?如果是这样,comments._id是唯一的帖子吗?我猜是的,但是...... -
你能帮忙提供完整的答案吗?
-
嗯,是的,但要弄清楚
comments数组的确切设置方式。如果一个帖子可以包含多个具有 same cmets _id 的 cmets,那么答案就会改变。评论 _id 在帖子中总是唯一的吗? -
一个帖子有多个cmet,comment._id是唯一的。
标签: node.js mongodb mongoose mongodb-query aggregation-framework