我目前有一个适用于 .DeleteMany 的过滤器。它删除 _id 在给定数组 vids 中的所有条目:
WP_MEMORY_LIMIT
现在我想增强过滤器并添加一些 $and 条件以仅删除 _id 在给定数组 vids 和(!) providerid 的值为 1234。
可悲的是,我在 go 中被困在如何做到这一点上。对我来说,阅读和编写这样的过滤器非常困难。特别是所有的 bson.D、bson.M 和 []bson.D 以及许多大括号等。
在 SQL 中,我会写 DELETE FROM data WHERE _id IN( {list} ) AND providerid=1234;
有没有 SQL 到 golang mongodb 过滤器转换器?
答案 0 :(得分:2)
试试
filter := bson.D{
{ "$and", []interface{}{
bson.D{{ Key: "_id", Value: bson.D{{ Key: "$in", Value: vids }}}},
bson.D{{ "providerid", 123}},
}},
}
根据@VolkerSchmid 评论
filter := bson.D{ { Key: "$and", Value: []interface{}{ bson.D{{ Key: "_id", Value: bson.D{{ Key: "$in", Value: vids }}}}, bson.D{{ Key: "providerid", Value: 123}}, }}, }