我正在嘗試對文檔數組中的元素數量進行預測。options.SetProjection(bson.M{ "foo": true, "nrOfBars": bson.M{ "$size": "$bars" },})bars是數組的字段名。盡管此查詢始終返回 0 而不是數組長度。如何使用新的 mongo-go-driver 正確查詢數組的長度?
1 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
您正在嘗試將聚合運算符用作投影文檔的一部分。投影文檔用于簡單查詢以僅返回某些字段。
您要使用的是聚合管道$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)
此聚合返回一個游標。要訪問結果,您必須按照游標文檔中的描述遍歷游標。
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消