通过 mongo-driver golang with nested array 查找文档

Find a document via mongo-driver golang with nested array

我正在尝试执行一个基本查询,以搜索数组中包含特定值的文档。 让我们举个例子:

{
  "metadata": {
    "tenant": [
      "tenant1",
      "tenant2",
      "tenant3"
    ]
  }
}

filter := bson.M{"metadata": bson.M{"tenant": "tenant1"}}

collection := mongo.Database(DB).Collection(Collection)
result := collection.FindOne(context.Background(), filter)

这里的结果是空的,我尝试使用 $elemmatch 也没有用。 当我从元数据中取出数组时,它可以工作。

请帮忙。

您的 filter 过滤器用于具有 metadata 字段的文档,该文档具有 tenant 字段和 tenant1 值。

要查找具有 metadata 字段的文档,具有包含 tenant1 元素的 tenant 数组,请用点连接字段名称:

filter := bson.M{"metadata.tenant": "tenant1"}