$concatArrays 只支持数组,不支持对象
$concatArrays only supports arrays, not object
我正尝试在 Go 中编写一个完美运行的 MongoDB 查询,但我在使用数组时遇到了困难。
正在处理 JSON:
[
...
{
$project: {
acl: {
$reduce: {
input: "$a.accesses",
initialValue: [],
in: {
$concatArrays: ["$$value", "$$this"]
}
}
}
}
}]
但不在 Go 上工作:
pipe := mongo.Pipeline{
...
bson.D{{Key: "$project", Value: bson.M{
"acl": bson.M{
"$reduce": bson.M{
"input": "$a.accesses",
"initialValue": bson.M{},
// None of the below works
"in": bson.M{"$concatArrays": bson.A{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []interface{}{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": [2]string{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []string{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []interface{}{"$$value", "$$this"}},
// "in": bson.D{{Key: "$concatArrays", Value: []interface{}{"$$value", "$$this"}}},
},
},
}}},
}
错误:$concatArrays only supports arrays, not object
我是 Go 的新手,所以我很确定我在某处遗漏了数组的概念。
您为 initialValue
提供的 Go 值是不是数组:
"initialValue": bson.M{},
改为:
"initialValue": []interface{}{},
或者:
"initialValue": bson.A{},
我正尝试在 Go 中编写一个完美运行的 MongoDB 查询,但我在使用数组时遇到了困难。
正在处理 JSON:
[
...
{
$project: {
acl: {
$reduce: {
input: "$a.accesses",
initialValue: [],
in: {
$concatArrays: ["$$value", "$$this"]
}
}
}
}
}]
但不在 Go 上工作:
pipe := mongo.Pipeline{
...
bson.D{{Key: "$project", Value: bson.M{
"acl": bson.M{
"$reduce": bson.M{
"input": "$a.accesses",
"initialValue": bson.M{},
// None of the below works
"in": bson.M{"$concatArrays": bson.A{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []interface{}{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": [2]string{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []string{"$$value", "$$this"}},
// "in": bson.M{"$concatArrays": []interface{}{"$$value", "$$this"}},
// "in": bson.D{{Key: "$concatArrays", Value: []interface{}{"$$value", "$$this"}}},
},
},
}}},
}
错误:$concatArrays only supports arrays, not object
我是 Go 的新手,所以我很确定我在某处遗漏了数组的概念。
您为 initialValue
提供的 Go 值是不是数组:
"initialValue": bson.M{},
改为:
"initialValue": []interface{}{},
或者:
"initialValue": bson.A{},