gpt4 book ai didi

javascript - array_contains 对象查询

转载 作者:行者123 更新时间:2023-12-01 01:40:32 29 4
gpt4 key购买 nike

如果我在集合的每个文档中都有一个名为 array_field字段,它由object 类型的元素组成,我可以查询对象中的特定字段吗?

- collection

- document1
- array_field
0: { type: tree, age: 143 }
1: { type: sunflower, age: 1 }
2: { type: fungus, age: 3 }

- document2
- array_field
0: { type: plane, age: 38 }
1: { type: plant, age: 2 }
2: { type: fungus, age: 1 }

是否可以查询array_field中包含类型为fungus的对象的每个文档 ?

如果这是不可能的,是否有办法通过指定精确的对象来查询文档?
我不知道如何编写查询:.where('array_field', 'array_contains',/*如何定义此对象*/)。它只是一个像这样的 JSON 对象吗:{type: fungus,age: 2}

我想要实现的查询如下:

where('array_field', 'array_contains', 'type:fungus')

这将返回 document1document2,但我找不到任何有关此类情况的语法提示。

最佳答案

这对于当前的数据结构来说是不可能的。 array_contains 仅在匹配数组元素的整个内容时才起作用,而不仅仅是特定的对象字段。

相反,您可以重组数据以使用具有唯一类型和 bool 值的对象,以便您可以查询类似 types.fungus == true 的内容:

document
types {
fungus: true
plant: true
}

在 nosql 数据库中复制数据以满足您需要执行的特定查询是很常见的。

关于javascript - array_contains 对象查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52459612/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com