[英]Deserialize cursor into array with mongo-go-driver and interface
[英]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.