Я довольно новичок в couchbase и попытался найти ответ на конкретный запрос, который я пытаюсь создать с небольшим успехом.Использование N1QL с ключами документа
Я обсуждал между использованием представления или N1QL для этого конкретного случая и был установлен с N1QL, но не смог заставить его работать, поэтому, возможно, в конце концов лучше.
В принципе у меня есть ключ документа() для 1 группу в следующем документе:
Group_1
{
"cbType": "group",
"ID": 1,
"Name": "Group Atlas 3",
"StoreList": [
2,
4,
6
]
}
У меня также есть документы «магазин», их ключи перечислены в магазинДобавить этот документ. (Store_2, Store_4, Store_6, и у них есть значение storeID, равное 2, 4 и 6). Я в основном хочу получить все перечисленные 3 документа.
Что у меня есть, что работает, я получаю этот документ с его идентификатором, выполнив:
var result = CouchbaseManager.Bucket.Get<dynamic>(couchbaseKey);
mygroup = JsonConvert.DeserializeObject<Group> (result.ToString());
я затем цикл через это магазинДобавить и получить все эти магазины в том же порядке, но я не нужно что-нибудь еще от группы, все, что я хочу, это магазины и предпочли бы сделать это за одну операцию.
Кто-нибудь знает, как сделать N1QL непосредственно для указанного значения документа? Нечто подобное (и это общий мнимый не рабочий код, я просто пытаюсь четко проиллюстрировать то, что я пытаюсь получить в):
SELECT * FROM mycouchbase WHERE documentkey В Group_1.StoreList
Благодаря
UPDATE: Так решение Nic не работает;
Это ближайший я получаю то, что мне нужно атм:
SELECT b from DataBoard c USE KEYS ["Group_X"] UNNEST c.StoreList b;
"results":[{"b":2},{"b":4},{"b":6}]
который возвращает список идентификаторов магазинов, которые я хочу для любой группы (Group_X) - я не нашел способ получить полные магазины, а не только идентификатор в том же заявлении.
Как только у меня есть, я опубликую полное решение, а также все удары по скорости, с которыми я столкнулся в процессе.
поэтому после возникновения проблем с log4net. Я только что удалил его полностью, чтобы продолжить тестирование, и, несмотря на то, что ответ @Nic Raboy выглядит точно так же, как я пытаюсь сделать, он возвращает пустой (нулевой) объект – Spacemonkey