2016-11-07 4 views
2

現在、MongoChef(4.3.0)を使用してAzureドキュメントDB(using DocumentDB protocol support for MongoDB)にアクセスしています。mongochef azureドキュメントdbクエリの問題

問題のデータは、アプリケーションの洞察連続輸出から(そこに他のデータがあるが、これは私が興味を持って重要な部分です...)

{ 
    ... other fields ... 
    "request" : [ 
     { 
      "name" : "GET /images/loading_man.gif", 
      "count" : NumberInt(1), 
      "responseCode" : NumberInt(200), 
      "success" : NumberInt(1), 
      "url" : "http://<removed>.cloudapp.azure.com/<something>/images/loading_man.gif" 
      ... other fields ... 
     } 
    ] 
    ... other fields ... 
} 

使用中のデータの次のタイプがありますされますMongoChef私は次のようないくつかの基本的なクエリを問題なく実行できます。

{ "request": { $exists: true } } 

が、より複雑なもの、私は、このデータをエクスポートし、私の地元のMongoDBのにインポートすると、すべての

{ "request.0.url": { $exists: true } } 

{ "request.0.url": /.*man.*/i }   

で実行何も返さないか、いないようだ、私は確かにデータに対して、このような検索を実行することができています問題のない問題です。

どのようにデータをエクスポートする必要なくこのタイプの検索を実行できますか?

(私はPythonプログラムで上記をしたいので、これは、プログラミングの問題である!)

+0

'request.0.url'の代わりに配列のインデックス構文を試してみてください。' request [0] ["url"] ' –

答えて

1

まあ、それは私が行うために必要なすべてのように見えるの使用$ elemMatchでした!

{ "request": { $elemMatch: {url:/.*man.*/i } }} 

これは私が推奨する方法ではなく、「高速」であることも理解していますか?

+0

Cool!あなたがうまく働いてうれしいです。要素が存在するがNullである場合、いずれの方法もそれをトラップしないため、Nullを保存しないことを100%確実にする必要があるか、またはこれを確認するためにフィルタに句を追加する必要があります。 –