我有以下数据:
一个名为类别的集合,其中包含如下文档:
{
"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字段了?
最后,我已经阅读了关系系统和非关系系统之间的区别,但在这种情况下,选择是密封的。
答案 0 :(得分:1)
对于1),你不想在这里或者真的使用服务器端的javascript。它很慢并阻止了许多其他操作。不要使用服务器端的JavaScript来尝试和伪造MongoDB中的连接。
对于2),将path
信息复制到rules
文档似乎是最佳解决方案。 path
多久会改变一次?嵌入path
的成本是重复,如果path
更改,则与当前设置相比,需要更昂贵的更新集。在没有关于您的用例的进一步信息的情况下,似乎值得我这么做。