Как сделать облачный запрос, чтобы найти документы, два поля которых равны - PullRequest
0 голосов
/ 02 марта 2019

Мне нужно получить все документы, чье, например, поле "_id" равно другому полю документа, например, "appId"

{
  "_id": "xxxx-xxxx-xxxx-xxxx",
  "_rev": "xxxx-xxxx-xxxx-xxxx",
  "header": {
    "appId": "xxxx-xxxx-xxxx-xxxx"

Так что же будет за запрос?

   "selector": {
      "_id": {
         "$eq": header.appId
      }
   },

1 Ответ

0 голосов
/ 03 марта 2019

Вы не можете выполнять «подзапросы» с Mango.

Из того, что я вижу, вы пытаетесь получить все документы, перечисленные в appId.

Это может быть сделаноиспользуя представление.

Ваша функция карты будет выглядеть следующим образом:

if(doc.header && doc.header.appId){
    emit(doc.doc.header.appId,{_id: doc.header.appId});
}

Результатом будет список документов, сопоставленных с doc.header.appId.

Если вы сделаете запроспредставление с ?include_docs=true, документы будут присоединены к ответу, так как мы выполняем соединение ManyToJoin.

...