Как я могу определить все возможные ключи базы данных CouchDB? - PullRequest
4 голосов
/ 30 мая 2011

Я создаю одно приложение, в котором для каждого продукта у меня есть одна база данных, и я буду создавать разные документы на основе даты. Ключи в документах могут быть разными и зависеть от пользователя, что он предоставляет. Предполагается, что пользователь будет продолжать давать тот же ключ для отслеживания с измененным значением с течением времени. В конце мне нужно знать все возможные ключи перед созданием автоматических представлений на них.

Пример: Если бы у меня была БД, скажем, тест. Он содержит, скажем, два документа

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.

Эти ключи являются динамическими и зависят от пользователей. Поэтому я не мог предположить, что знал их заранее.

1 Ответ

8 голосов
/ 24 июня 2011

Я никогда раньше не использовал stackoverflow, я видел ваш вопрос, пытаясь решить эту проблему самостоятельно, поэтому я зарегистрировался. Я думаю, что это решает вашу проблему:

создайте представление, в котором «views» включают это:

{ "ключи": { "map": "function (doc) {for (var thing in doc) {emit (thing, 1);}}", "уменьшить": "функция (ключ, значения) {вернуть сумму (значения);}" } }

затем запросите это представление с group = true, например ::1007*

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

вы должны получить список всех ключей в вашей базе данных и подсчет того, как часто это происходит.

это помогает?

...