C# 如何实现选择。。。就像在NoSQL中一样?

C# 如何实现选择。。。就像在NoSQL中一样?,c#,mysql,mongodb,amazon-dynamodb,couchbase,C#,Mysql,Mongodb,Amazon Dynamodb,Couchbase,我对NoSQL非常陌生,所以我想知道如何以NoSQL(DynamoDB,…)的方式实现下面的sql查询?这是可能的还是需要一种全新的方法 下面的查询将查找半径为200米的38.698左右的所有记录。。。经度和-9.416…纬度(在查询中,经度和纬度是表中包含相应gps值的字段): SELECT*,(6371*acos(弧度(38.6985559))*cos(弧度(纬度))* cos(弧度(经度)-弧度(-9.4186706))+sin(弧度(38.6985559))* sin(弧度(纬度))*1

我对NoSQL非常陌生,所以我想知道如何以NoSQL(DynamoDB,…)的方式实现下面的sql查询?这是可能的还是需要一种全新的方法

下面的查询将查找半径为200米的38.698左右的所有记录。。。经度和-9.416…纬度(在查询中,经度和纬度是表中包含相应gps值的字段):

SELECT*,(6371*acos(弧度(38.6985559))*cos(弧度(纬度))*
cos(弧度(经度)-弧度(-9.4186706))+sin(弧度(38.6985559))*
sin(弧度(纬度))*1000作为距定位台的距离
距离小于200,距离限制为0,100;
如何实现这一点?我意识到一些NoSQL数据库有一些地理库,但如果以上是所需的全部,是否有可能以某种方式“翻译”它


谢谢

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


我检查了它,它按原样工作(几乎,除了“as”关键字),只需将表名交换到适当的bucket。

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


我检查了它,它正在按原样工作(几乎,除了“as”关键字),只是将表名交换到适当的bucket。

我尝试了使用as子句的N1QL,它被接受,但没有正确选择。这对我很有用:

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

我用AS子句尝试了N1QL,它被接受了,但没有正确选择。这对我很有用:

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

抱歉,太宽泛,无法回答任何一种以上的技术。如果您理解SQL语句的内容,那么也很容易找到它。这是一个标准的“到给定点的距离”查询。是的,所有的数据库都有自己的特定方法来实现这一点。对不起,这太广泛了,无法回答任何一种以上的技术。如果您理解SQL语句的内容,那么也很容易找到它。这是一个标准的“到给定点的距离”查询。是的,所有数据库都有自己的特定方法来执行此操作;选择*FROM default LET distance=(6371*acos(弧度(38.6985559))*cos(弧度(纬度))*cos(弧度(经度)-弧度(-9.4186706))+sin(弧度(38.6985559))*sin(弧度(纬度))*1000,其中距离<200;我拥有的数据如下:{“企业名称”:“名称”,“类别”:“类型”,“街道地址”:“街道”,“城市”:“城市”,“邮政编码”:“90000”,“电话”:“网站”:“其他”:“其他”,“纬度”:38.6985559,“经度”:-9.4186706}我缺少什么?请尝试删除WHERE子句,以便调试距离公式。尝试此操作,但仍存在一些问题:我执行了此操作:创建主索引默认值;选择*FROM default LET distance=(6371*acos(弧度(38.6985559))*cos(弧度(纬度))*cos(弧度(经度)-弧度(-9.4186706))+sin(弧度(38.6985559))*sin(弧度(纬度))*1000,其中距离<200;我拥有的数据如下:{“企业名称”:“名称”,“类别”:“类型”,“街道地址”:“街道”,“城市”:“城市”,“邮政编码”:“90000”,“电话”:“网站”:“其他”:“其他”,“纬度”:38.6985559,“经度”:-9.4186706}我遗漏了什么?试着删除WHERE子句,这样你就可以调试你的距离公式了