Mongodb 如何在mongo中加入两个集合而无需查找
我有两个收藏,分别是post和comment。 模型结构如下所示。 我想使用聚合查询post并按注释(如长度和)排序,目前我可以在下面的查询语句中查询post注释(如长度和) 我的问题是如何在Mongo 2.6版中查询帖子并加入评论集合。我知道Mongo3.2之后有一个查找功能 我想查询后收集和排序的外国评论喜欢长度。在Mongo2.6中有最好的方法吗 邮递 评论 查询类似sum的帖子评论 没有“最佳”的查询方式,因为它实际上取决于您的具体需求,但是。。。您不能跨多个集合执行单个查询(如您所知,在更高版本中,除了Mongodb 如何在mongo中加入两个集合而无需查找,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有两个收藏,分别是post和comment。 模型结构如下所示。 我想使用聚合查询post并按注释(如长度和)排序,目前我可以在下面的查询语句中查询post注释(如长度和) 我的问题是如何在Mongo 2.6版中查询帖子并加入评论集合。我知道Mongo3.2之后有一个查找功能 我想查询后收集和排序的外国评论喜欢长度。在Mongo2.6中有最好的方法吗 邮递 评论 查询类似sum的帖子评论 没有“最佳”的查询方式,因为它实际上取决于您的具体需求,但是。。。您不能跨多个集合执行单个查询(如您所知,
$lookup
聚合管道函数之外)
您需要进行多个查询:一个查询到您的post
集合,另一个查询到您的comment
集合
如果您必须执行一个查询,那么考虑将两种类型的文档存储在一个集合中(具有一些标识符属性,以便在查询中的某个帖子或评论中过滤)。
{
"_id": ObjectId("5a39e22c27308912334b4567"),
"uid": "0",
"content": "what is hello world mean?",
}
/* 1 */
{
"_id": ObjectId("5a595d8c2703892c3d8b4567"),
"uid": "1",
"post_id": "5a39e22c27308912334b4567",
"comment": "hello world",
"like": [
"2"
]
}
/* 2 */
{
"_id": ObjectId("5a595d8c2703892c3d8b4512"),
"uid": "2",
"post_id": "5a39e22c27308912334b4567",
"comment": "hello stackoverflow",
"like": [
"1",
"2"
]
}
db.getCollection('comment').aggregate([
{
"$match": {
post_id: "5a39e22c27308912334b4567"
}
},
{
"$project": {
"likeLength": {
"$size": "$like"
},
"post_id": "$post_id"
}
},
{
"$group": {
_id: "$post_id",
"likeLengthSum": {
"$sum": "$likeLength"
}
}
}
])