#pragma comment(lib, "bson-1.0.lib")
#pragma comment(lib, "bson-static-1.0.lib")
#pragma comment(lib, "mongoc-1.0.lib")
#pragma comment(lib, "mongoc-static-1.0.lib")
#include <nlohmann/json.hpp>
#include <iostream>
#include <mongoc.h>
#include <bson.h>
#include <mutex>
using json = nlohmann::json;
bson_t *doc; //bson文件
bson_error_t error; //错误号
mongoc_client_t *client; //数据库ID
mongoc_collection_t *collection; //句柄
/*
保存json数据到数据库
*/
void j2mongo(json &json_data) {
//json转换为bson
doc = bson_new_from_json((const uint8_t *)(json_data.dump().c_str()), -1, &error);
// 将bson文档插入到集合
mongoc_collection_insert(collection, MONGOC_INSERT_NONE, doc, NULL, &error);
}
/*
1. 连接数据库
2. 创建bson文档
3. json转换为bson
4. 插入集合
*/
void mongosave() {
// 初始化libmongoc
mongoc_init();
// 连接到数据库,并获取集合句柄
client = mongoc_client_new("mongodb://localhost:27017/");
collection = mongoc_client_get_collection(client, "mydb", "mycoll");
}
/*
安全退出数据库
*/
void mongoexit() {
// 释放资源
bson_destroy(doc);
mongoc_collection_destroy(collection);
mongoc_client_destroy(client);
// 清理libmongoc
mongoc_cleanup();
}
int main() {
json JsonIns;
JsonIns["test"] = "12345";
mongosave();
j2mongo(JsonIns);
mongoexit();
return 0;
}
mongodb简单的例子,以及附带windows环境下编译好的Release版本库,简单下载即可测试,很久没有碰Mongodb了,总结一下,希望能提供一些帮助
demo以及依赖库下载链接一:https://gitee.com/Judah_t/resources/raw/master/mongodb.zip
demo以及依赖库下载链接二:Mongodb实例Demo-C++文档类资源-CSDN下载