数据库编程——MongoDB json( 八 )


.h
/***Copyright (C) 2008 10gen Inc.**This program is free software: you can redistribute it and/ormodify*it under the terms of the GNU Affero General Public License, version 3,*as published by the Free Software Foundation.**This program is distributed in the hope that it will be useful,*but WITHOUT ANY WARRANTY; without even the implied warranty of*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the*GNU Affero General Public License for more details.**You should have received a copy of the GNU Affero General Public License*along with this program.If not, see .*/#pragma once#ifndef _WIN32_WINNT// Allow use of features specific to Windows Vista or later.#define _WIN32_WINNT 0x0600// Change this to the appropriate value to target other versions of Windows.#endif
.h
(1)vs配置方法
打开,新建项目:选择“ C++”,右侧选择“空项目”,名称:,位置改为所在目录(我的为 F:\\06-数据库编程day05( json)\4-源码\);
创建成功后,在“”右键选择“属性”,选择“VC++目录”进行配置:选择“包含目录”,在其后加入到一级的目录(我的为 F:\\06-数据库编程day05( json)\4-源码\\mongo\);
注意:以上把mongo的头文件配置为绝对路径;推荐使用相对路径:寻找自己的相对路径 ..\..\mongo\
(2)通过API连接到

数据库编程——MongoDB json

文章插图
类(通过VS可以方便的查看API函数)
》构造函数
(bool =false, * cp=0,=0)
○是否自动重连,默认false
○ cp 不需要关心
○ 超时时间,单位是秒
》连接函数
bool (const char * , & )
○主机 类似这样: 127.0.0.1 , 127.0.0.1:5555
○错误信息,传出
在“”右键添加源文件:main.cpp,然后编写代码:
#include #include #include using namespace std;using namespace mongo;int main(int argc,char *argv[]){//构造连接DBClientConnection conn(false,0,3);std::string errmsg;if (!conn.connect("localhost", errmsg)){cout << "connect to mongo err" << endl;return -1;}cout << "connect ok" << endl;return 0;}
将main.cpp传至Linux上,然后编译
>g++ -o main main.cpp - - - -ns -L/home///boost/lib -L/home///mongo/lib -I/home///mongo/ -I/home///boost/
>./main
(3)通过API删除文档
》删除文档
void ( const&ns , Query q , bool= 0 )
○ ns 库名.集合名
○ q 是一个查询条件
○是否删除一条,默认false
》Query 是一个类
○ Query(const char * json);构造函数,可以构造
--在VS中更改main.cpp
#include #include #include using namespace std;using namespace mongo;int main(int argc,char *argv[]){//构造连接DBClientConnection conn(false,0,3);std::string errmsg;if (!conn.connect("localhost", errmsg)){cout << "connect to mongo err" << endl;return -1;}cout << "connect ok" << endl;//remove//删除id>=2 {id:{$gte:2}}Query qry("{id:{$gte:2}}");conn.remove("yekai.biancheng", qry);return 0;}
原终端删除前后数据对比:(将main.cpp传至Linux上,然后打开另一个终端重新编译执行)
数据库编程——MongoDB json

文章插图
(4)通过API新增文档
》新增文档
void ( const&ns ,obj , int flags=0)
○ ns 库名.集合名
○obj对象
》新增的核心问题—如何构造?
可以构造
》增加一个字符型的key:value
(const & , const char *str)
obj() 可以返回对象
/** Use BSON macro to build afrom a
e.g.,
BSON( "name"