Mongodb mongo go驱动器投影阵列长度
我试图得到文档数组中元素数量的投影Mongodb mongo go驱动器投影阵列长度,mongodb,go,Mongodb,Go,我试图得到文档数组中元素数量的投影 options.SetProjection(bson.M{ "foo": true, "nrOfBars": bson.M{ "$size": "$bars" }, }) bars是数组的字段名。 但此查询始终返回0而不是数组长度 如何使用新的mongo go驱动程序正确查询数组长度?您正在尝试使用聚合运算符作为投影文档的一部分。A用于简单查询,仅返回某些字段 您要使用的是项目中的$project阶段。这与简单的投影文档不同,您可以使用更复杂
options.SetProjection(bson.M{
"foo": true,
"nrOfBars": bson.M{ "$size": "$bars" },
})
bars是数组的字段名。
但此查询始终返回0而不是数组长度
如何使用新的mongo go驱动程序正确查询数组长度?您正在尝试使用聚合运算符作为投影文档的一部分。A用于简单查询,仅返回某些字段 您要使用的是项目中的$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)
此聚合返回一个游标。要访问结果,您必须按中所述遍历光标。效果很好,谢谢!有没有办法摆脱go-vet警告github.com/mongodb/mongo-go-driver/bson/primitive.E复合文字使用无眼字段?