Например, у нас есть банковская запись, мы используем запрос, чтобы получить всю банковскую запись, я просто хотел создать функцию, которая просто возвращает общую банковскую запись и возвращает только номер.
Вы имеете в виду общее количество записей в CouchDB или только определенный тип записи?
В любом случае, я предложу решения для обоих вариантов, предполагая, что вы используете CouchDB в качестве базы данных состояния.
Чтение общего количества записей, присутствующих в CouchDB, из чейнкода будет просто большими накладными расходами. Вы можете просто сделать вызов GET API, подобный этому http://couchdb.server.com/mydatabase
, и вы получите обратно JSON, выглядящий примерно так:
{
"db_name":"mydatabase",
"update_seq":"2786-g1AAAAFreJzLYWBg4MhgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUoxJTIkyf___z8riYGB0RuPuiQFIJlkD1Naik-pA0hpPExpDj6lCSCl9TClwXiU5rEASYYGIAVUPR-sPJqg8gUQ5fvBygMIKj8AUX4frDyOoPIHEOUQt0dlAQB32XIg",
"sizes":{
"file":13407816,
"external":3760750,
"active":4059261
},
"purge_seq":0,
"other": {
"data_size":3760750
},
"doc_del_count":0,
"doc_count":2786,
"disk_size":13407816,
"disk_format_version":6,
"data_size":4059261,
"compact_running":false,
"instance_start_time":"0"
}
Отсюда вы можете просто прочитать значение doc_count
.
Однако, если вы хотите прочитать общее количество документов в чейнкоде, я должен упомянуть, что это будет очень дорогостоящая операция, и вы можете получить ошибку тайм-аута, если количество записей очень велико. Для определенного типа записи вы можете использовать синтаксис селектора Couchdb.
Если вы хотите прочитать все записи, вы можете использовать метод getStateByRange(startKey, endKey) и подсчитать все записи.