2017-02-22 7 views
1

現在、PyRavenDB経由でPythonオブジェクト(ウェブサイト)をRavenDBデータベースに保存しようとしています。問題はデータが適切に保存されることですが、結果を照会してテストすると、属性の一部が空に戻されます。 コードはシンプルですが、私は問題を正しく見つけることができません。RavenDBオブジェクトは正しく保存されていますが、クエリの際に空の属性があります

データベース内のJSONオブジェクトは次のとおりです(DB 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 

を照会するために、このコードを使用する場合それは、このオブジェクトを返します。

{ 
'uniqueid': 'f942e86f965d4709a2d69caca3001f2a', 
'url': '', 
'myHash': 'd41d8cd98f00b204e9800998ecf8427e', 
'htmlCode': '', 
'added': '2017-02-21', 
'lastaccessed': '2017-02-21' 
} 

あなたが見ることができるように、URLやHTMLコードが空です。彼らは適切に格納されているDBのため、彼らはokeyする必要があります。

ありがとうございました。

+0

この文書のメタデータがどのようなものです修正します。このquery_result = list(session.query().where_equals("url", "www.example.com"))

query_result = list(session.query().where_equals("www.example.com", url))

を変更しますか? –

+0

where_equals( "url"、url).select(param1、param2、.....)メタデータは次のようになります。{ "Raven-Entity-Name" : "ウェブサイト"、 "Raven-Python-Type": "__main__.Website" } – Neil

答えて

2

ここでの問題は、where_equal権限を使用しないことです。 where_equal最初の引数は、照会するフィールド名で、値(def where_equals(self, field_name, value))です。

はちょうどこのラインこれはあなたの問題

関連する問題