В Couchbase идентификатор / ключ документа фактически отсутствует в самом документе. Если вы используете шаблон --generate-key
, ваш документ будет выглядеть примерно так:
key = "10000163::SET"
{
"CLUSTER": "M1M",
"CLUSTER_NAME": "MARTIN MARIETTA",
"PRIMARY": "",
"SET_NUM": "10000163",
SHORTENED_NAME": "MARTIN MARIETTA MATERIALS",
"TYPE": "SET",
"_class": "com.company.aad.xref.model.ClusterCodeXref"
}
В Couchbase нет обозначенного поля "id". Конечно, вы можете создать поле id, но оно будет таким же, как и любое другое поле.
Что касается индекса, это зависит от того, какой запрос вы хотите выполнить. Вы можете CREATE INDEX idx_setnumandtype ON bucketname (SET_NUM, TYPE)
, как вы упомянули. Это будет полезный индекс для запросов типа: SELECT b.* FROM bucketname WHERE SET_NUM = 'foo' AND TYPE = 'bar';
Но, если вы знаете эти два значения и вам просто нужно выполнить поиск одного документа, вам не нужно создавать индекс или использовать N1QL. Вы можете просто выполнить операцию GET ключ / значение. Например, в Java: bucket.get("10000163::SET")