小编Jak*_*wen的帖子

来自结构化对象的 Typeorm 动态查询构建器

为了在 graphql 服务器中使用,我定义了一个结构化输入类型,您可以在其中指定许多与prisma 工作方式非常相似的过滤条件:

在此处输入图片说明

这允许我在查询中提交结构化过滤器,例如:

{
  users(
    where: {
      OR: [{ email: { starts_with: "ja" } }, { email: { ends_with: ".com" } }],
      AND: [{ email: { starts_with: "ja" } }, { email: { ends_with: ".com" } }],
      email: {contains: "lowe"}
    }
  ) {
    id
    email
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的解析器中,我通过一个函数提供 args.where 来解析结构并利用 TypeOrm 的查询构建器将其转换为正确的 sql。整个函数是:

import { Brackets } from "typeorm";

export const filterQuery = (query: any, where: any) => {
  if (!where) {
    return query;
  }

  Object.keys(where).forEach(key => { …
Run Code Online (Sandbox Code Playgroud)

graphql typeorm

12
推荐指数
2
解决办法
1万
查看次数

OS X/Python/R的CHAID分析选项

我正在寻找一种良好的开源(或低成本)方式来执行CHAID分析.我最喜欢的语言是python,但R也可以.OS X是必须的.

我找到了R的这个软件包:http://r-forge.r-project.org/projects/chaid/ 但是找不到如何使用它的文档.

有谁知道如何在OS X环境中进行CHAID分析的良好文档?我想避免使用基于SPSS/Answer Tree的解决方案.

谢谢.

python macos r machine-learning

6
推荐指数
1
解决办法
5771
查看次数

是否可以在AWS Lambda环境中正确指向Python Shapely库的LIBGEOS_C?

我正在尝试编写一个 AWS python Lambda 函数,该函数利用 Shapely 进行简单的“多边形中的点”操作。我启动了一个 AWS linux EC2 实例,安装了 Shapely 并有一个工作脚本。然后,我从 EC2 实例下载了 Linux 特定的 libgeos_c.so.1 二进制文件,并将其(通过无服务器框架)捆绑到与 lambda 函数相同的目录中。但是,一旦我部署,脚本将不会执行,因为它会抛出“无法找到库或加载其任何变体...”错误。我什至尝试通过 GEOS_LIBRARY_PATH 环境变量显式指向 libgeos_c.so.1 路径,但没有效果。这是不可能的部署吗?

这是一个代码片段,它设置环境变量,然后调用实际导入和利用 shapely 的辅助脚本。

import sys
import os
import subprocess

here = os.path.dirname(os.path.realpath(__file__))

# Import installed packages (in site-packages)
site_pkgs = os.path.join(here, "venv", "lib", "python2.7", "site-packages") 
sys.path.append(site_pkgs)
import json

def hello(event, context):

    command = "GEOS_LIBRARY_PATH={} python test_geo_worker.py".format(here + "/libgeos_c.so.1")
    foo = subprocess.check_output(command, shell=True)
    print foo
Run Code Online (Sandbox Code Playgroud)

有人在 lambda 中成功部署过 shapely 吗?我的后备计划是回到旧的 postgres/postgis 而不是 shapely,但我肯定想尝试在 dynamo/lambda 堆栈中构建它。

python amazon-web-services shapely aws-lambda serverless-framework

6
推荐指数
1
解决办法
1139
查看次数

PHP/mysql - 查询与数组?

我正在编写一个相当简单的 web 应用程序,它从 mysql 数据库中的 3 个表中提取数据。因为我不需要大量的高级过滤,所以理论上构造并在大型多维数组中工作似乎更快,而不是尽可能执行 mysql 查询。

从理论上讲,我可以只从每个表中查询一个并使用结果构建大型数组,基本上不需要再次查询该表。这是一个好的做法,还是只在需要时查询数据更好?或者是否存在某种平衡,如果是,它是什么?

php mysql theory

5
推荐指数
1
解决办法
4104
查看次数

结合使用Census Bulk Geocoder和python请求库

我正在尝试进行人口普查地理编码API 文档

以下curl命令有效:

curl --form addressFile=@Addresses.csv --form benchmark=9 http://geocoding.geo.census.gov/geocoder/locations/addressbatch --output geocoderesult.csv
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其移植到python请求时:

url = 'http://geocoding.geo.census.gov/geocoder/geographies/addressbatch'
payload = {'benchmark':9}
files = {'addressFile': ('Addresses.csv', open('Addresses.csv', 'rb'), 'text/csv')}
r = requests.post(url, files=files, data = payload)
print r.text
Run Code Online (Sandbox Code Playgroud)

我显然不是在发送格式正确的请求,而只是在响应中收到“存在内部错误”。知道我在提出此请求时做错了什么吗?

python geocoding census python-requests

4
推荐指数
1
解决办法
1581
查看次数

如何在 Peewee 中加入空间函数?

我正在努力弄清楚如何根据相当常见的表 postgis 模式在 Peewee 中加入表。我需要加入一个基于 postgis 函数(st_contains)的表。我想它会是这样的:

Station.select().join(Location, on=fn.ST_Intersects(Station.geom, Location.geom)).where(Location.name == 'Ravenswood')
Run Code Online (Sandbox Code Playgroud)

上述查询(如果支持)将返回名为 Ravenswood 的位置中的所有站点。等效的 SQL 是:

SELECT station.name, station.district, station.line
FROM station INNER JOIN location ON ST_Intersects(station.geom, loc.geom)
WHERE location.name = 'Ravenswood';
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的实验似乎都以这个简短的回溯结束:

File "/Users/j.../python2.7/site-packages/peewee.py", line 1555, in generate_joins
left_field = field.to_field
AttributeError: 'NoneType' object has no attribute 'to_field'
Run Code Online (Sandbox Code Playgroud)

peee支持这个吗?我在文档中找不到它。

postgis peewee

3
推荐指数
1
解决办法
624
查看次数

如何在 jest / apollo 客户端中捕获被拒绝的 graphql 订阅?

使用 graphql-yoga 我试图编写笑话测试来覆盖订阅。

如果订阅有效(使用身份验证),我能够成功测试快乐路径。不幸的是,我无法测试订阅 websocket 连接被拒绝的情况。

在我的服务器设置中,我拒绝任何未通过我的身份验证标准的 websocket 连接:

const app = await server.start({
    cors,
    port: process.env.NODE_ENV === "test" ? 0 : 4000,
    subscriptions: {
      path: "/",
      onConnect: async (connectionParams: any) => {
        const token = connectionParams.token;
        if (!token) {
          throw new AssertionError({ message: "NO TOKEN PRESENT" });
        }
        const decoded = parseToken(token, process.env.JWT_SECRET as string);
        const user = await validateTokenVersion(decoded, redis);
        if (user === {}) {
          throw new AssertionError({ message: "NO VALID USER" });
        }
        return { user }; …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs graphql apollo-server graphql-subscriptions

1
推荐指数
1
解决办法
1221
查看次数

如何在大查询中使用 ST_CONTAINS 加入地理列

我有一个 BigQuery 表,其地址包括 Lat/Lng 和其他 BQ 表,其中包含从人口普查 shapefile 导入的工作几何定义。对于地址表中的每一行,我试图查找包含它的几何行。

以下查询是我查找 INDIVIDUAL lat/lng 工作正常:

SELECT SLDLST FROM `geographies.tl_2018_sldl_*` sldl WHERE ST_CONTAINS(sldl.geom, ST_GEOGPOINT(-95.221080, 38.974500));
Run Code Online (Sandbox Code Playgroud)

但是当我尝试抽象成一个连接时

SELECT 
  address_id,
  SLDLST
FROM `launchpad-239920.address_standardization.temp_delete_geo_match_sample` ssgolden
LEFT JOIN `geographies.tl_2018_sldl_*` sldl ON ST_CONTAINS(sldl.geom, ST_GEOGPOINT(ssgolden.longitude, ssgolden.latitude));
Run Code Online (Sandbox Code Playgroud)

我收到错误消息: “如果不满足连接两侧字段相等的条件,则不能使用 LEFT OUTER JOIN。”

如何重构我的连接查询以便能够为每个地址提取匹配的地理位置?

gis google-bigquery

0
推荐指数
1
解决办法
1009
查看次数