【发布时间】:2018-12-14 22:46:30
【问题描述】:
我们将User 数据存储到 MongoDB 中。客户端提供一个 JSONPath 查询来请求过滤的用户集。
例如:
$.users[@.salary > 10000]
是一个 JSONPath 查询,用于检索薪水大于 10000 的用户。
数据:
"users": [ {
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"salary" : 5000,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
},
........
]
}
然而,同样的 MongoQuery 将是:
db.inventory.find( { salary: { $gt: 10000 } })
我们有连接到 MongoDB 的 Java 应用程序代码。
有什么方法可以直接运行这个 JSONPath 查询到 MongoDB 吗?
使用 Mongo 查询意味着将 JSONPath 查询转换为 MongoQuery,这在代码中会很麻烦。一种非常暴力的方法是首先在 AS(应用程序)上获取所有用户,然后将 List<Document> 转换为 Json 字符串,然后运行 JSONPath 查询。
任何帮助将不胜感激。
【问题讨论】:
-
我建议你选择翻译选项。您可以用 Java 重写以下代码,仅此而已 - 希望如此。 ;) github.com/gabrielelana/mongodb-shell-extensions/blob/master/…
标签: json mongodb mongodb-query jsonpath