- サーバーインストール
http://www.mongodb.org/downloads
から適当にアーカイブ拾ってくる。
わたしは、Linux64bitなので、以降はそれが前提。
mongod.confを適当に作る。私は、ここから拾ってきた。
https://github.com/mongodb/mongo/blob/master/debian/mongodb.conf
サーバー起動用スクリプト(バックグラウンドになる)
#!/bin/sh -f
numactl --interleave=all ./mongodb-linux-x86_64-static-legacy-2.2.2/bin/mongod --config ./mongodb-linux-x86_64-static-legacy-2.2.2/mongod.conf --fork - C API (driver)のインストール
http://www.mongodb.org/display/DOCS/C+Language+Center
から、アーカイブ拾ってくる。makeしてできたlibとかヘッダーを適当な場所にコピーする - プログラムする
基本はチュートリアル、
http://api.mongodb.org/c/current/tutorial.html
を参考にすればいいんだけど、C driver v0.7から write concernという新しい変数が必要になる。プログラムは末尾に。コンパイル時に-std=c99するか-DMONGO_HAVE_STDINTしないといけない。私は、後者にしている。色々理由があって。 - mongo shellで中身を確認する時は、
mongo SERVER_FQDN
して、shellのなかで、
use COLLECTION_NAME #プログラムの中のmongo_insertで決めてる
db.DOCUMENTS.find()
すると、登録した物が見えるはず。
#include "mongo.h"
int status;
mongo mongo_conn[1];
mongo_write_concern mongo_wc[1];
mongo_init(mongo_conn);
mongo_write_concern_init(mongo_wc);
mongo_wc->w=1;
mongo_write_concern_finish(mongo_wc);
mongo_set_op_timeout(mongo_conn,1000);
status = mongo_client(mongo_conn,"SERVER_FQDN",27017);
if( status != MONGO_OK ) {
fprintf(stderr,"error\n");
mongo_write_concern mongo_wc[1];
mongo_init(mongo_conn);
mongo_write_concern_init(mongo_wc);
mongo_wc->w=1;
mongo_write_concern_finish(mongo_wc);
mongo_set_op_timeout(mongo_conn,1000);
status = mongo_client(mongo_conn,"SERVER_FQDN",27017);
if( status != MONGO_OK ) {
fprintf(stderr,"error\n");
}
bson b[1];
bson_init(b);
bson_append_new_oid(b,"_id");
bson_append_int(b,"unixtime",time_integer);
bson_finish(b);
status = mongo_insert(mongo_conn,"COLLECTION_NAME.DOCOMENTS",b,mongo_wc);
if(status != MONGO_OK){
fprintf(stderr,"%s\n",msg_mongo(status));
}
bson_destroy(b);
mongo_write_concern_destroy(mongo_wc);
mongo_destroy(mongo_conn);
0 件のコメント:
コメントを投稿