猿问

mongo-go-driver 投影数组长度

我正在尝试对文档数组中的元素数量进行预测。


options.SetProjection(bson.M{

    "foo": true,

    "nrOfBars": bson.M{ "$size": "$bars" },

})

bars是数组的字段名。

尽管此查询始终返回 0 而不是数组长度。


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


小唯快跑啊
浏览 104回答 1
1回答

斯蒂芬大帝

您正在尝试将聚合运算符用作投影文档的一部分。投影文档用于简单查询以仅返回某些字段。您要使用的是聚合管道$project中的阶段。这与简单的投影文档不同,您可以使用更复杂的聚合运算符,例如. 这是一些示例代码,我相信它可以满足您的需求:$sizectx := context.TODO()pipeline := bson.A{    bson.D{{        "$project",        bson.D{            {"foo", 1},            {"nrOfBars", bson.D{                {"$size", "$bar"},            }},        },    }},}cur, err := col.Aggregate(ctx, pipeline)此聚合返回一个游标。要访问结果,您必须按照游标文档中的描述遍历游标。
随时随地看视频慕课网APP

相关分类

Go
我要回答