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

发布于 2024-11-10 14:16:08 字数 457 浏览 1 评论 0原文

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

例子: 如果我有数据库,比如说,测试。它包含两个文档,

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

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

然后我想列出该数据库中的所有键。所以,答案应该是 _id、_rev、type、content 和 extra。

这些键是动态的并且取决于用户。所以,我不能假设我提前认识他们。

I am creating one application where for every product I have one database and I will create different document based on date. The keys in documents could be different and depend upon user, what he provides. Assumption is user will keep giving same key for tracking with changed value over time. In the end, I need to know all possible keys before creating automatic views on them.

Example:
If I had DB, say, test. It contains, say, two documents,

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

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

Then I want to list all keys in this DB. So, answer should be _id,_rev,type,content and extra.

These keys are dynamic and depend upon users. So, I couldn't assume that I knew them in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

智商已欠费 2024-11-17 14:16:08

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

创建一个视图,其中“视图”包含以下内容:

{
“钥匙”:{
"map": "function(doc) { for (var thing in doc) { 发出(thing,1); } }",
“减少”:“函数(键,值){返回总和(值);}”
}
然后

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

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

你应该得到数据库中所有键的列表以及发生频率的计数。

这有帮助吗?

I have never used stackoverflow before, I saw your question when trying to solve this problem myself so I have signed up. I think this solves your problem:

create a view where "views" includes this:

{
"keys": {
"map": "function(doc) { for (var thing in doc) { emit(thing,1); } }",
"reduce": "function(key,values) { return sum(values); }"
}
}

then query on that view with group=true e.g.:

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

you should get back a list of all the keys in your database and a count of how often the occur.

does this help?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文