繁体   English   中英

mongo-go-driver投影阵列长度

[英]mongo-go-driver projection array length

我正在尝试对documents数组中元素的数量进行投影。

options.SetProjection(bson.M{
    "foo": true,
    "nrOfBars": bson.M{ "$size": "$bars" },
})

bars是数组的字段名。
尽管此查询始终返回0而不是数组长度。

如何使用新的mongo-go-driver正确查询数组的长度?

您正在尝试将聚合运算符用作投影文档的一部分。 投影文档仅用于简单查询中以返回某些字段。

您要使用的是聚合管道中$project阶段。 这与简单的投影文档不同,您可以使用更复杂的聚合运算符,例如$size 以下是一些示例代码,我相信它可以满足您的要求:

ctx := context.TODO()

pipeline := bson.A{
    bson.D{{
        "$project",
        bson.D{
            {"foo", 1},
            {"nrOfBars", bson.D{
                {"$size", "$bar"},
            }},
        },
    }},
}

cur, err := col.Aggregate(ctx, pipeline)

该聚合返回一个游标。 要访问结果,您必须按照游标文档中所述遍历游标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM