gpt4 book ai didi

MongoDB - 查询嵌入文档

转载 作者:可可西里 更新时间:2023-11-01 10:44:50 26 4
gpt4 key购买 nike

我有一个名为 Events 的集合。每个 Event 文档都有一个 Participants 集合作为嵌入文档。

现在是我的问题.. 有没有办法查询 Event 并获取所有 Participants ex。年龄 > 18 岁?

最佳答案

当您在 MongoDB 中查询集合时,默认情况下它会返回与查询匹配的整个文档。如果需要,您可以对其进行切片并检索单个子文档。

如果您只想要 18 岁以上的参与者,最好做以下两件事之一:

  1. 将它们存储在名为“Over18”之类的事件文档内的子文档中。将它们插入该文档(如果需要,也可能插入其他文档),然后在查询集合时,您可以指示数据库仅返回“Over18”子文档。这样做的缺点是您将参与者存储在两个不同的子文档中,并且您必须在插入之前计算出他们的年龄。这可能可行也可能不可行,具体取决于您的应用程序。如果您需要能够检查任意年龄(即有时是 18 岁,但有时是 21 或 25 岁等),那么这将不起作用。

  2. 查询集合并检索 Participants 子文档,然后在您的应用程序代码中对其进行过滤。尽管有些人可能会相信,但这并不可怕,因为您不希望数据库一直做太多工作。将计算卸载到您的应用程序实际上可以使您的数据库受益,因为它现在可以花更多的时间查询和更少的时间过滤。从长远来看,它会带来更好的可扩展性。

关于MongoDB - 查询嵌入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6425883/

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