Mongo-Go-Driver 中的嵌套 OR/AND 查询过滤器
使用 Go 驱动程序在 MongoDB 中创建复杂查询过滤器时,很常见需要 OR 和 AND 等嵌套运算符。然而,官方驱动程序要求使用 bson.D 和 bson.E 元素来构建过滤器。
要处理嵌套的 OR/AND 操作,您可以组合 bson.D 和 bson.M 对象。
考虑以下示例,您想要创建具有嵌套 OR 条件的 AND 过滤器:
此方法将导致以下结果错误:“不能在切片文字中使用 Primitive.M 文字(类型 Primitive.M)作为类型 Primitive.E。”
要解决此问题,您可以按如下方式定义过滤器:
在这里,我们使用 bson.A (bson.D 元素的数组),而不是在 bson.D 中使用 bson.D 来实现嵌套 OR 条件。这是因为 $or 需要一个过滤器数组。
另一个选项是对主 AND 过滤器和嵌套 OR 条件使用 bson.M:
在这种情况下,您可以使用 bson.M 而不是 bson.D 来定义嵌套 OR 条件,因为 bson.A 也允许 bson.M 元素。
以上是如何在 Mongo-Go-Driver 中创建嵌套 OR/AND 查询过滤器?的详细内容。更多信息请关注PHP中文网其他相关文章!