gpt4 book ai didi

php - MongoDB:跨集合查询

转载 作者:IT老高 更新时间:2023-10-28 13:13:44 27 4
gpt4 key购买 nike

假设这样的设置:

blogposts
{
title:"Example",
slug:"example-post"
tags: ["foo", "bar"]
},
{
title:"Example2",
slug:"example2"
tags: ["foo"]
}

news
{
headline: "Test"
slug: "test-news"
tags: ["bar"]
}

我知道我可以获取所有带有特定标签的博客文章:

$cursor = $blogposts->find(array('tags' => 'bar'));

但是有没有办法一次查询多个集合以获取所有带有标签的文档?例如。显示带有标签“bar”的所有内容。

最佳答案

无法一次查询多个集合。

如果文档都是相同的通用类型,最好的方法是将所有文档存储在同一个集合中。在您的示例中,博客文章和新闻项目都是一种“内容”。

content
{
type: "blogpost",
title: "Example",
slug: "example-post"
tags: ["foo", "bar"]
},
{
type: "blogpost",
title: "Example2",
slug: "example2"
tags: ["foo"]
},
{
type: "news",
headline: "Test"
slug: "test-news"
tags: ["bar"]
}

这种方法利用了 MongoDB 的无模式特性;尽管两种文档类型可能具有不同的属性,但它们都可以存储在同一个集合中。这允许您查询所有内容,或仅查询某些类型的内容,具体取决于您的要求。

关于php - MongoDB:跨集合查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745566/

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