Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何在mongo中加入两个集合而无需查找_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 如何在mongo中加入两个集合而无需查找

Mongodb 如何在mongo中加入两个集合而无需查找,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有两个收藏,分别是post和comment。 模型结构如下所示。 我想使用聚合查询post并按注释(如长度和)排序,目前我可以在下面的查询语句中查询post注释(如长度和) 我的问题是如何在Mongo 2.6版中查询帖子并加入评论集合。我知道Mongo3.2之后有一个查找功能 我想查询后收集和排序的外国评论喜欢长度。在Mongo2.6中有最好的方法吗 邮递 评论 查询类似sum的帖子评论 没有“最佳”的查询方式,因为它实际上取决于您的具体需求,但是。。。您不能跨多个集合执行单个查询(如您所知,

我有两个收藏,分别是postcomment。 模型结构如下所示。 我想使用聚合查询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"
            }
        }
    }
])