我正在尝试进行一个我还无法进行的查询。我的永久视图功能如下:
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)
从键值可以理解,键有三种不同的类型。我认为我可以使用 [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
}
}
一条记录只有一个域名,但可以有多个ip。您可以将记录视为 dns 数据包。
我想根据 llweb_result (0,1,2) 对记录进行分组。我将为它们进行选择查询(例如,我获取包含“1”的记录)。但是对于上面的示例,结果中将有两个相同的元组。
任何帮助都会得到帮助。