使用 $ 和条件创建过滤器,SQL 到 golang 过滤器转换器?

时间:2021-03-24 15:41:36

标签: database mongodb go mongodb-query

我目前有一个适用于 .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 过滤器转换器?

1 个答案:

答案 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}}, }}, }
相关问题