2016-11-23 2 views
0

У меня есть функция узел, который создает массив; есть ли способ сохранить все записи в базе данных Cloudant?Bluemix NodeRed - Как я могу хранить несколько документов за один раз в Cloudant DB?

Спасибо.

+0

Я попытался поместить массив в полезную нагрузку, но хранить только первый объект массива. Я связал также, чтобы возвратиться из функции массива, но вернуть 400 error cloudantdb node – Neo1975

+0

Редактировать вопрос, чтобы на самом деле показать код – hardillb

ответ

1

Ниже приведен пример потока с использованием узла http-запроса, основанного на https://docs.cloudant.com/document.html#bulk-operations.

[{"id":"b97b6381.90cd18","type":"inject","z":"b4aeef03.c16228","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":95.5,"y":330,"wires":[["accfba5c.0df688"]]},{"id":"accfba5c.0df688","type":"function","z":"b4aeef03.c16228","name":"Multiple records to insert","func":"msg.payload = {\n \"docs\": [\n {\n  \"name\": \"Nicholas\",\n  \"age\": 45,\n  \"gender\": \"female\"\n },\n {\n  \"name\": \"Taylor\",\n  \"age\": 50,\n  \"gender\": \"female\"\n }\n ]\n}\n\nmsg.headers={\"Content-Type\":\"application/json\"}\n\nreturn msg;","outputs":1,"noerr":0,"x":357.9000244140625,"y":331.5999755859375,"wires":[["a950d685.dcf92"]]},{"id":"a950d685.dcf92","type":"http request","z":"b4aeef03.c16228","name":"Bulk add to Cloudant","method":"POST","ret":"txt","url":"https://REPLACE-bluemix.cloudant.com/dev/_bulk_docs","x":636.9000244140625,"y":330.79998779296875,"wires":[["e2355dc3.e1118"]]},{"id":"e2355dc3.e1118","type":"debug","z":"b4aeef03.c16228","name":"","active":true,"console":"false","complete":"false","x":888.9000244140625,"y":329.79998779296875,"wires":[]}] 

enter image description here

1

Похоже, что Node-RED поддерживает только базовые операции вставки или удаления в Cloudant - что означает отсутствие поддержки конечной точки _bulk_docs (docs here).

Вы можете использовать функцию HTTP-запроса, чтобы сделать свой собственный запрос _bulk_docs через API, используя документы, связанные выше, и это должно позволить вам вставлять сразу несколько документов.

0

Если вы храните массив, вы можете использовать что-то вроде разделенного узла, чтобы разбить его на отдельные сообщения и вставить их по одному за раз.

Или измените свой функциональный узел, чтобы вывести поток сообщений и снова вставить их по одному.

Смежные вопросы