gpt4 book ai didi

python - 在 pymongo 中获取嵌入式文档的最佳方式?

转载 作者:可可西里 更新时间:2023-11-01 09:14:39 26 4
gpt4 key购买 nike

我在 MongoDB 中有这样的文档:

{
"user": ObjectID("4d71076b26ab7b032800009f")
"pages" : [
{
"name" : "Main",
"content" : [
{
"id" : ObjectId("4d71076b26ab7b052800009f")
},
{
"id" : ObjectId("4d61269b1deb5a3fce000004"),
"link" : "http://example.com"
}
]
}
]}

可以看到键“pages”是一个包含其他文档的数组。现在我可以用页面名称查询该文档,我将获得包含所有页面和其他信息的完整文档。我在 python 中直接使用 pymongo 来查询文档,但现在我不知道从数组页面中获取页面的最佳方法是什么。我认为是这样的:

def getPage(pageNameWhoINeed):
for page in pages:
if page['name'] == pageNameWhoINeed:
return page

但这是获取单个页面或一般嵌入式文档的最佳方式吗?欢迎所有提示或代码片段。

谢谢!鲇鱼

最佳答案

是的,你是对的。在 mongodb 中,没有父级就无法加载嵌入式文档。您可以通过子文档的某些属性加载父文档。

pages.find({"pages.name", "Main"}); //should load all document that contains pages  collection and at least one item in embedded collection with name 'Main'.

然后您需要遍历所有嵌入的文档以找到您需要的页面。

如果你经常需要加载嵌入式文档,mb 你需要重新设计你的数据库(将页面移动到根集合,但在我看来你的架构没问题)。

关于python - 在 pymongo 中获取嵌入式文档的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204961/

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