次のようなjsonファイルがある場合:
{"name":"bob","hi":"hello"}
{"name":"hello","hi":"bye"}
これをcouchdbにインポートするオプションはありますか?
Linux を使用している場合は、有効な json ファイルの内容を Couch に POST する簡単なシェル スクリプトを作成できます。
ソファをテストするために、私は次のようなことをしました:
cat myFile.json | POST -sS "http://myDB.couchone.com/testDB" -c "application/json"
myFile.json には、データベースにインポートしたい json コンテンツが含まれています。
別の方法として、コマンド ラインが気に入らない、または Linux を使用しておらず、GUI を好む場合は、RESTClientなどのツールを使用できます。
Probably a bit late to answer. But If you can use Python than you can use the couchdb module to do so:
import couchdb
import json
couch = couchdb.Server(<your server url>)
db = couch[<your db name>]
with open(<your file name>) as jsonfile:
for row in jsonfile:
db_entry = json.load(row)
db.save(db_entry)
I created the python script to do that(As I could not find one on Internet).
The full script is here: :
http://bitbucket.org/tdatta/tools/src/
(name --> jsonDb_to_Couch.py)
If you download the full repo and:
Text replace all the "_id" in json files to "id"
Run make load_dbs
It would create 4 databases in your local couch installation
Hope that helps newbies (like me)
はい、これは有効なJSONではありません...
JSONオブジェクトをインポートするには、curl(http://curl.haxx.se)を使用します。
curl -X PUT -d @my.json http://admin:secret@127.0.0.1:5984/db_name/doc_id
ここで、my.jsonはJSON-Objectが含まれるファイルです。もちろん、JSON-Objectを(ファイルなしで)couchdbに直接配置することもできます。
curl -X PUT -d '{"name":"bob","hi":"hello"}' http://admin:secret@127.0.0.1:5984/db_name/doc_id
doc_idがない場合は、couchdbに問い合わせることができます。
curl -X GET http://127.0.0.1:5984/_uuids?count=1
それは私の解決策ではありませんが、私の問題を解決するためにこれを見つけました:
CouchDB データベースをファイルにエクスポートする簡単な方法は、ターミナル ウィンドウで次の Curl コマンドを実行することです。
curl -X GET http://127.0.0.1:5984/[mydatabase]/_all_docs\?include_docs\=true > /Users/[username]/Desktop/db.json
次のステップは、エクスポートされた json ファイルを次のように変更することです (_id に注意してください)。
{
"docs": [
{"_id": "0", "integer": 0, "string": "0"},
{"_id": "1", "integer": 1, "string": "1"},
{"_id": "2", "integer": 2, "string": "2"}
]
}
主に確認する必要があるのは、「docs」コード ブロックにドキュメントを追加することです。これが完了したら、次の Curl コマンドを実行して、データを CouchDB データベースにインポートできます。
curl -d @db.json -H "Content-type: application/json" -X POST http://127.0.0.1:5984/[mydatabase]/_bulk_docs
データベースの複製 あるサーバーから別のサーバーにデータベースを複製する場合。次のコマンドを実行します。
curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://example.com:5984/dbname/", "target": "http://localhost@:5984/dbname/"}'
元の投稿: http://www.greenacorn-websolutions.com/couchdb/export-import-a-database-with-couchdb.php
その JSON オブジェクトは CouchDB によって受け入れられません。単一のサーバー要求ですべてのデータを保存するには、次を使用します。
{
"people":
[
{
"name":"bob",
"hi":"hello"
},
{
"name":"hello",
"hi":"bye"
}
]
}
または、行ごとに異なる CouchDB リクエストを送信します。
cURL を使用して、コマンドラインからファイルを CouchDB にインポートします。
curl -vX POST https://user:pass@127.0.0.1:1234/database \
-d @- -# -o output -H "Content-Type: application/json" < file.json
http://github.com/zaphar/db-couchdb-schema/tree/master
私の DB::CouchDB::Schema モジュールには、一連のドキュメントを CouchDB データベースにロードするのに役立つスクリプトがあります。couch_schema_tool.pl スクリプトは、ファイルを引数として受け取り、そのファイル内のすべてのドキュメントをデータベースにロードします。次のように、各ドキュメントを配列に入れるだけです。
[ {"名前":"ボブ","こんにちは":"こんにちは"}, {"名前":"こんにちは","こんにちは":"さようなら"} ]
それらをデータベースにロードします。ただし、最新のコードを CouchDB の最新のものに対してテストしていないため、使用して壊れた場合はお知らせください。おそらく、新しい API の変更に合わせて何かを変更する必要があります。
ジェレミー