Просмотры в Couchbase

У меня есть сервер Couchbase, и я пытаюсь создать некоторые представления, но, похоже, у меня нет полного понимания концепции представлений. У меня есть два следующих примера документов:

{
  "id": 70,
  "status": 2,
  "updatedAt": "2014-09-04T08:52:29.969Z",
  "createdAt": "2014-09-03T21:32:19.000Z",
  "user1": {
    "id": 33185,
    ....
  },
  "user2": {
    "id": 40838,
    .....
  }
}

{
  "id": 71,
  "status": 4,
  "updatedAt": "2014-09-03T21:33:09.404Z",
  "createdAt": "2014-09-03T21:32:20.000Z",
  "user1": {
    "id": 37126,
    ....
  },
  "user2": {
    "id": 36094,
    .....
  }
}

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

function (doc, meta) {
  if (doc.user1 && doc.user2) {
    emit(doc.id, doc);
  }
}

первый документ (с идентификатором: 70) не возвращается представлением, в то время как второй. Я не понял, почему, хотя у обоих есть user1 и user2.

Любая помощь очень ценится.


person Sami    schedule 30.10.2014    source источник
comment
Происходит ли это по-прежнему, если вы продвигаете проектно-конструкторскую документацию для производства?   -  person Kirk    schedule 30.10.2014
comment
Танки @Kirk Я новичок в Couchbase, и я не знал, что представления разработки работают только с подмножеством документов, когда я попробовал представление с полным подмножеством, оно принесло все ожидаемые документы.   -  person Sami    schedule 01.11.2014
comment
Вы действительно не хотите испускать документ, который сделает ваши индексы массивными и убьет производительность. Вместо этого представление всегда будет возвращать ключ документа, который вы можете использовать для получения документа с помощью обычного метода get.   -  person Paddy    schedule 17.12.2014


Ответы (2)


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

person Owen Hughes    schedule 01.11.2014

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

person Kirk    schedule 02.11.2014