DataStax 星际之门文档 API
DataStax Stargate Document API
DataStax 文档 API Swagger UI 中显示的 Swagger 文档中的 a JSON blob with search filters, allowed operators: $eq, $ne, $in, $nin, $gt, $lt, $gte, $lte, $exists
是什么意思,它没有记录在案所以我想问一下查询字符串是否是基于 MongoDB?
暴露在 Cassandra 之上的文档 API 由开源项目 Stargate, indeed developed by Datastax and embedded in their Saas solution Astra 提供。
您创建的 JSON 查询字符串会在适当的 CQL 查询中进行解析和转换。
源代码不说谎你可以找到完整的代码here and specially parsing of the where clause here
public List<FilterCondition> convertToFilterOps(
List<PathSegment> prependedPath,
JsonNode filterJson) {
List<FilterCondition> conditions = new ArrayList<>();
if (!filterJson.isObject()) {
throw new DocumentAPIRequestException("Search was expecting a JSON object as input.");
}
ObjectNode input = (ObjectNode) filterJson;
Iterator<String> fields = input.fieldNames();
while (fields.hasNext()) {
String fieldName = fields.next();
if (fieldName.isEmpty()) {
throw new DocumentAPIRequestException(
"The field(s) you are searching for can't be the empty string!");
}
...
查询字符串在本质上与您在 Mongo 中找到的内容非常相似。
这里有一些示例 where 子句可以提供一个想法:
{"name": {"$eq": "Eric"}}
- 足够简单,匹配具有字段 name
且值为 Eric
的文档
{"a.age": {"$gt": 0}}
- 您还可以在文档中引用嵌套字段
{"friends.[0].name": {"$in": ["Cassandra"]}}
- 使用 []
引用数组元素,如果文档的第一个朋友名为 Cassandra,这将匹配。
{"friends.*.age": {"$gte": 24}}
- 通配符 *
可用于匹配数组中的任何元素,或特定嵌套级别的任何字段。这匹配任何年龄 >= 24 的朋友。
DataStax 文档 API Swagger UI 中显示的 Swagger 文档中的 a JSON blob with search filters, allowed operators: $eq, $ne, $in, $nin, $gt, $lt, $gte, $lte, $exists
是什么意思,它没有记录在案所以我想问一下查询字符串是否是基于 MongoDB?
暴露在 Cassandra 之上的文档 API 由开源项目 Stargate, indeed developed by Datastax and embedded in their Saas solution Astra 提供。
您创建的 JSON 查询字符串会在适当的 CQL 查询中进行解析和转换。
源代码不说谎你可以找到完整的代码here and specially parsing of the where clause here
public List<FilterCondition> convertToFilterOps(
List<PathSegment> prependedPath,
JsonNode filterJson) {
List<FilterCondition> conditions = new ArrayList<>();
if (!filterJson.isObject()) {
throw new DocumentAPIRequestException("Search was expecting a JSON object as input.");
}
ObjectNode input = (ObjectNode) filterJson;
Iterator<String> fields = input.fieldNames();
while (fields.hasNext()) {
String fieldName = fields.next();
if (fieldName.isEmpty()) {
throw new DocumentAPIRequestException(
"The field(s) you are searching for can't be the empty string!");
}
...
查询字符串在本质上与您在 Mongo 中找到的内容非常相似。
这里有一些示例 where 子句可以提供一个想法:
{"name": {"$eq": "Eric"}}
- 足够简单,匹配具有字段 name
且值为 Eric
{"a.age": {"$gt": 0}}
- 您还可以在文档中引用嵌套字段
{"friends.[0].name": {"$in": ["Cassandra"]}}
- 使用 []
引用数组元素,如果文档的第一个朋友名为 Cassandra,这将匹配。
{"friends.*.age": {"$gte": 24}}
- 通配符 *
可用于匹配数组中的任何元素,或特定嵌套级别的任何字段。这匹配任何年龄 >= 24 的朋友。