我正在创建一个应用程序,对于每个产品,我有一个数据库,我将根据日期创建不同的文档。文档中的密钥可能不同,取决于用户,他提供的内容。假设是用户将继续提供相同的密钥以跟踪随时间变化的值。最后,在创建自动视图之前,我需要知道所有可能的键。
实施例: 如果我有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。
这些键是动态的,取决于用户。所以,我不能认为我提前知道了。
答案 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
您应该返回数据库中所有密钥的列表以及发生频率的计数。
这有帮助吗?