Вы можете достичь этого с помощью представления карты в Cloudant.Попробуйте что-то вроде этого:
function(doc) {
if (doc && doc.Objects) {
doc.Objects.forEach(function(obj) {
emit([obj.code, obj.country], obj);
});
}
}
Это приведет к тому, что все элементы из списка Objects
будут добавлены в индекс с ключом с векторным значением [code, country]
.
curl -s -XPOST -H "content-type:application/json" 'https://skruger.cloudant.com/demo/_design/query/_view/by_code_country?reduce=false' -d '{ "keys": [["v1","BE"]] }'
{"total_rows":2,"offset":0,"rows":[
{"id":"1c593a931bcd7f0052ed8f9184810fd9","key":["v1","BE"],"value":
{"code":"v1","allowNull":"true","country":"BE"}}
]}
Вы можете делать запросы только по коду, используя подстановочный знак {}
, например,
curl -g 'https://skruger.cloudant.com/demo/_design/query/_view/by_code_country?reduce=false&startkey=["v1"]&endkey=["v1",{}]'
{"total_rows":2,"offset":0,"rows":[
{"id":"1c593a931bcd7f0052ed8f9184810fd9","key":["v1","BE"],"value":
{"code":"v1","allowNull":"true","country":"BE"}}
]}