RavenDB 对象正确保存,但查询时有一些空属性
RavenDB Object properly saved but some empty attributes when querying
我目前正在尝试通过 PyRavenDB 在 RavenDB 数据库中保存一些 python 对象(网站)。问题是数据保存正确,但是当我通过查询结果对其进行测试时,某些属性返回为空。
代码很简单,我找不到问题所在。
数据库中的 JSON 对象如下(已通过数据库 Web UI 验证)。
{
"htmlCode": "<code>TEST HTML</code>",
"added": "2017-02-21",
"uniqueid": "262e4584f3e546afa2c67045a0096b54",
"url": "www.example.com",
"myHash": "d41d8cd98f00b204e9800998ecf8427e",
"lastaccessed": "2017-02-21"
}
当我使用这段代码查询时
from pyravendb.store import document_store
store = document_store.documentstore(url="http://somewhere:someport", database="websites")
store.initialize()
with store.open_session() as session:
query_result = list(session.query().where_equals("www.example.com", url))
print query_result
print type(query_result)
return query_result
它returns这个对象:
{
'uniqueid': 'f942e86f965d4709a2d69caca3001f2a',
'url': '',
'myHash': 'd41d8cd98f00b204e9800998ecf8427e',
'htmlCode': '',
'added': '2017-02-21',
'lastaccessed': '2017-02-21'
}
如您所见,url 和 html 代码是空的。它们应该没问题,因为它们已正确存储在数据库中。
谢谢。
这里的问题是你没有正确使用where_equal。
where_equal 第一个参数是您要查询的字段名称,然后是值 (def where_equals(self, field_name, value)
)。
只需更改此行 query_result = list(session.query().where_equals("www.example.com", url))
对此query_result = list(session.query().where_equals("url", "www.example.com"))
这将解决您的问题
我目前正在尝试通过 PyRavenDB 在 RavenDB 数据库中保存一些 python 对象(网站)。问题是数据保存正确,但是当我通过查询结果对其进行测试时,某些属性返回为空。 代码很简单,我找不到问题所在。
数据库中的 JSON 对象如下(已通过数据库 Web UI 验证)。
{
"htmlCode": "<code>TEST HTML</code>",
"added": "2017-02-21",
"uniqueid": "262e4584f3e546afa2c67045a0096b54",
"url": "www.example.com",
"myHash": "d41d8cd98f00b204e9800998ecf8427e",
"lastaccessed": "2017-02-21"
}
当我使用这段代码查询时
from pyravendb.store import document_store
store = document_store.documentstore(url="http://somewhere:someport", database="websites")
store.initialize()
with store.open_session() as session:
query_result = list(session.query().where_equals("www.example.com", url))
print query_result
print type(query_result)
return query_result
它returns这个对象:
{
'uniqueid': 'f942e86f965d4709a2d69caca3001f2a',
'url': '',
'myHash': 'd41d8cd98f00b204e9800998ecf8427e',
'htmlCode': '',
'added': '2017-02-21',
'lastaccessed': '2017-02-21'
}
如您所见,url 和 html 代码是空的。它们应该没问题,因为它们已正确存储在数据库中。
谢谢。
这里的问题是你没有正确使用where_equal。
where_equal 第一个参数是您要查询的字段名称,然后是值 (def where_equals(self, field_name, value)
)。
只需更改此行 query_result = list(session.query().where_equals("www.example.com", url))
对此query_result = list(session.query().where_equals("url", "www.example.com"))
这将解决您的问题