我正在尝试使用pyorient中的OGM来匹配某些字段中有空值的记录。
通过查看GitHub上的单元测试,我成功地完成了大部分工作,但我在那里或文档中找不到任何示例。我在GitHub上也看不到任何问题,所以我想我只是以错误的方式处理它。
pyOrient版本: 1.5.5
python版本: 3.6.3
OrientDB版本: 2.2.31
我在下面进行了一个端到端的设置,以突出显示最终查询中的问题。
from pyorient.ogm import Graph, Config, declarative
from pyorient.ogm.property import (String, Integer)
ogm_config = Config.from_url("localhost/ogm_test", "root", "root", initial_drop = True)
g = Graph(ogm_config)
Node = declarative.declarative_node()
class table_a(Node):
element_plural = 'table_a'
column_1 = String()
column_2 = Integer()
g.create_all(Node.registry)
db_data = [
{"column_1":"Test 1", "column_2" : 1},
{"column_1":"Test 1"},
{"column_1":"Test 2", "column_2" : 1},
{"column_1":"Test 2", "column_2" : None},
]
for data in db_data:
res = g.table_a.create(**data)
query_res = g.table_a.query(**db_data[0]).all()
print(len(query_res)) # expected 1 got 1 i.e. (db_data[0])
query_res = g.table_a.query(**db_data[1]).all()
print(len(query_res)) # expected 2 got 2 i.e. (db_data[0] and db_data[1])
query_res = g.table_a.query(**db_data[2]).all()
print(len(query_res)) # expected 1 got 1 i.e. (db_data[2])
query_res = g.table_a.query(**db_data[3]).all()
print(len(query_res)) # expected 1 got 0 ??????? I expected db_data[3]非常感谢,
格雷厄姆
发布于 2018-01-15 20:05:25
根据我的评论,这似乎是一个缺陷。在GitHub上提出了一个问题。
问题#262: OGM:未正确查询空字段
https://stackoverflow.com/questions/48230477
复制相似问题