我正在评估 MongoDB,我想看看它在查询方面的能力如何。
关于我的数据集,我可能需要使用一个字段的值来与另一个字段的值进行比较。最好的解释方式是举个例子。
在下面的 json 中,我想返回至少有一位年龄小于 30 岁且国家人口超过 1 亿的人的文档。:: p>
{
people: [
{ name: "Feyyaz", age: 28, country: "Turkiye" },
{ name: "Joseph", age: 25, country: "USA" },
...
],
countries: [
{ name: "Turkiye", population: 75000000 },
{ name: "USA", population: 300000000 },
...
]
}
注意:这个例子完全是我编的,因为我真实世界的例子要复杂得多。改变结构应该是最后的选择。
最佳答案
如果您可以使用 Python 来完成这项工作,那么您可以考虑使用查询语言 ObjectPath 这使您可以像这样在一行中完成工作:
$.people[@.age<30 and $.countries[@.name is @@.country].population > 100000000]
除了“@@”还没有实现——如果你想使用它,你可以在github页面上写一个功能请求
免责声明:计划在不久的将来将该语言与 MongoDB 集成,以便它可以利用 MongoDB 的分布式功能。
关于MongoDB 高级查询——使用另一个字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821416/