如何实现 select ... 就像在 NoSQL 中一样?

How to implement select ... as in NoSQL?

我是 NoSQL 的新手,所以我想知道如何以 NoSQL(DynamoDB,...)方式实现以下 sql 查询?这甚至可能还是会采用全新的方法?

以下查询查找 38.698 左右 200 米半径内的所有记录...经度和 -9.416...纬度(在查询中,经度和纬度是 table 中保存各自 gps 值的字段) :

SELECT *, ( 6371 * acos( cos( radians(38.6985559) ) * cos( radians( latitude ) ) * 
cos( radians( longitude ) - radians(-9.4186706) ) + sin( radians(38.6985559) ) * 
sin( radians( latitude ) ) ) )*1000 AS distance FROM locationtable HAVING
distance < 200 ORDER BY distance LIMIT 0 , 100;

如何实现?我意识到有几个 NoSQL 数据库有一些地理库,但如果以上就是所需要的,是否有可能以某种方式 "translate" 这个?

谢谢

您实际上可以使用 N1QL 做到这一点,它是 JSON 文档的 SQL 等价物。 N1QL 支持弧度、cos、acos、sin 和所有其他三角函数。 您应该尝试使用 Couchbase 4.5 DP 并将其粘贴到查询 UI.

我检查了一下,它按原样工作(几乎,除了 "as" 关键字),只是将 table 名称交换到适当的存储桶。

我尝试使用带有 AS 子句的 N1QL,它被接受但没有 select 正确。这对我有用:

SELECT *
FROM table
LET computedValue = yourFormula, other attributes...
WHERE condition including computedValue