使用pymongo时是否存在类似关系的功能?

时间:2015-04-01 17:21:48

标签: mongodb python-3.x

我有以下数据:

一个名为类别的集合,其中包含如下文档:

{
    "cat":"Films Anglais",
    "path":"W:\\videos"
}

类别是唯一的(因为我使用upsert)或者让我们承认它无论如何。

一个名为规则的集合,其中包含如下文档:

{
    "title":"braveheart",
    "regex":"^.*braveheart.*$",
    "cat":"Films Anglais"
}

我正在迭代所有规则。所以我可以从规则中获取猫作为规则[' cat']。 我需要的是来自类别的路径。

我知道我能做到:

dest = ""
for category in categories.find():
    if category['cat'] == rule['cat']:
        dest = category['path']
        break

1)我更喜欢这个过程是数据库方面。喜欢categories.find_one()。distinct(' path')。where(cat = rule [' cat'])?我知道荣军院。

2)有没有办法定义一种关系,这样我就不需要复制cat字段了?

最后,我已经阅读了关系系统和非关系系统之间的区别,但在这种情况下,选择是密封的。

1 个答案:

答案 0 :(得分:1)

对于1),你不想在这里或者真的使用服务器端的javascript。它很慢并阻止了许多其他操作。不要使用服务器端的JavaScript来尝试和伪造MongoDB中的连接。

对于2),将path信息复制到rules文档似乎是最佳解决方案。 path多久会改变一次?嵌入path的成本是重复,如果path更改,则与当前设置相比,需要更昂贵的更新集。在没有关于您的用例的进一步信息的情况下,似乎值得我这么做。