如何确定CouchDB数据库的所有可能密钥?

时间:2011-05-30 10:14:58

标签: couchdb couchdb-python

我正在创建一个应用程序,对于每个产品,我有一个数据库,我将根据日期创建不同的文档。文档中的密钥可能不同,取决于用户,他提供的内容。假设是用户将继续提供相同的密钥以跟踪随时间变化的值。最后,在创建自动视图之前,我需要知道所有可能的键。

实施例: 如果我有DB,比如说测试。它包含两个文件,

1. {
 "_id":"1",
 "_rev":"1-"
 "type": "Note",
 "content": "Hello World!"
}

2. {
 "_id":"2",
 "_rev":"1-"
 "type": "Note",
 "content": "Beyond Hello World!",
 "extra":"Boom"
}

然后我要列出此DB中的所有密钥。所以,答案应该是_id,_rev,type,content和extra。

这些键是动态的,取决于用户。所以,我不能认为我提前知道了。

1 个答案:

答案 0 :(得分:8)

我之前从未使用过stackoverflow,我在尝试自己解决这个问题时看到了你的问题,所以我已经注册了。我认为这解决了你的问题:

创建一个视图,其中“views”包含:

{    “钥匙”:{        “map”:“function(doc){for(var thing in doc){emit(thing,1);}}”,        “reduce”:“function(key,values){return sum(values);}”    } }

然后使用group = true查询该视图,例如:

http://localhost:5984/mydb/_design/myview/_view/keys?group=true

您应该返回数据库中所有密钥的列表以及发生频率的计数。

这有帮助吗?