[英]Is there a where like relation function when using pymongo?
我有以下数据:
名为类别的集合,其中包含如下文档:
{
"cat":"Films Anglais",
"path":"W:\\videos"
}
类别是唯一的(因为我使用upsert),或者我们还是承认它是类别。
一个名为rules的集合,其中包含如下文档:
{
"title":"braveheart",
"regex":"^.*braveheart.*$",
"cat":"Films Anglais"
}
我正在重复所有规则。 因此,我可以从“ rule ['cat']”规则中访问猫。 我需要的是分类的路径。
我知道我可以做到:
dest = ""
for category in categories.find():
if category['cat'] == rule['cat']:
dest = category['path']
break
1)我希望该过程在数据库端进行。 像category.find_one()。distinct('path')。where(cat = rule ['cat'])一样? 我知道无效。
2)有没有一种方法可以定义一种关系,这样我就不需要重复cat字段了?
最后,我已经阅读了关系系统和非关系系统之间的区别,但是在这种情况下,选择是密封的。
对于1),您根本不想在这里或实际上一直使用服务器端javascript。 它很慢并且会阻止许多其他操作。 不要使用服务器端JavaScript尝试在MongoDB中伪造联接。
对于2),将path
信息复制到rules
文档中似乎是最好的解决方案。 path
多久更改一次? 与当前设置相比,嵌入path
的成本是复制,并且如果path
发生更改,则需要一组更昂贵的更新。 在没有有关您的用例的进一步信息的情况下,对我而言这似乎是值得的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.