まだできていないクエリを作成しようとしています。私の常設ビュー機能は次のとおりです。
function(doc) {
if('llweb_result' in doc){
for(i in doc.llweb_result){
emit(doc.llweb_result[i].llweb_result, doc);
}
}
}
キーに応じて、結果をフィルタリングします。ですから、この鍵が必要です。次に、ご覧のとおり、for ループがあります。これにより、結果に同一のタプルが発生します。ただし、すべてをチェックするには、この for ループも実行する必要があります。ここでは、同一のタプルを削除する方法を知りたいだけですか?
私はcouchdb-pythonを使用しています。私の関連コードは次のとおりです。
result = {}
result['0'] = self.dns_db.view('llweb/llweb_filter', None, key=0, limit = amount, startkey_docid = '000000052130')
result['1'] = self.dns_db.view('llweb/llweb_filter', None, key=1, limit=amount)
result['2'] = self.dns_db.view('llweb/llweb_filter', None, key=2, limit=amount)
キー値からわかるように、キーには 3 つの異なるタイプがあります。[doc._id, llweb_result] で「キー」を拡張できると思いました。[*, 2] のようなキーが必要ですが、それが可能かどうかわかりません。次に、reduce 関数を使用してそれらをグループ化します。これは間違いなく機能しますが、現時点では [0,1,2] の値のみを使用して選択クエリを作成する方法が問題です。
16.08.12 で編集
couchdb レコードの「llweb_result」プロパティの例:
"llweb_result": {
"1": {
"ip": "66.233.123.15",
"domain": "domain.com",
"llweb_result": 1
},
"0": {
"ip": "66.235.132.118",
"domain": "domain.com',
"llweb_result": 1
}
}
1 つのレコードには 1 つのドメイン名しかありませんが、複数の IP が存在する可能性があります。レコードを dns パケットと見なすことができます。
llweb_result (0,1,2) に応じてレコードをグループ化したい。それらに対して選択クエリを実行します(たとえば、「1」を含むレコードをフェッチします)。ただし、上記の例では、結果に 2 つの同一のタプルが含まれます。
どんな助けでも感謝します。