我目前有一个正在工作的过滤器。DeleteMany。它删除给定数组中_id所在的所有条目vids:
filter := bson.D{{Key: "_id", Value: bson.D{{Key: "$in", Value: vids}}}}
res, err := DB.Collection("data").DeleteMany(context.TODO(), filter)
现在我想增强过滤器,并添加一些$和条件,以仅删除_id在给定数组vids中并且(!(providerid的值为1234时的条目。
遗憾的是,我一直纠结于如何在围棋中做到这一点。对我来说,读写这样的过滤器是非常困难的。尤其是有这么多bson。D、 bson。M和[]bson。D和许多花括号等
在SQL中,我会写DELETE FROM数据WHERE _id In({list}(AND providerid=1234
有SQL到golangmongodb的过滤器转换器吗?
尝试
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}}, }}, }