首页 > 后端开发 > Golang > 正文

如何在 Mongo-Go-Driver 中创建嵌套 OR/AND 查询过滤器?

Susan Sarandon
发布: 2024-11-18 02:16:02
原创
699 人浏览过

How to create nested OR/AND query filters in Mongo-Go-Driver?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板