VS2017搭建MongoDB环境
环境
- 系统:win10
- boost版本:1.73.0
- CMake版本:3.13.3
- VS版本:2017
1.安装boost
2.下载
CMake
mongo-c-driver
下载地址
我使用的版本:mongo-c-driver-1.17.2.tar.gz
mongo-cxx-driver
下载地址
我使用的版本:mongo-cxx-driver-r3.6.1.tar.gz
3.安装
前提
完成安装boost。
CMake
解压之后将E:\_FX_WorkPlace\MongoDB\CMake\cmake-3.13.3-win64-x64\bin
配置到环境变量中
mongo-c-driver
1.在外部创建一个名为mongo-c-driver
的文件夹
2.打开此工具
3.执行.cd E:\_FX_WorkPlace\MongoDB\mongo-c-driver-1.17.2\build
4.cmake.exe -G "Visual Studio 15 2017 Win64" "-DCMAKE_INSTALL_PREFIX=E:\_FX_WorkPlace\MongoDB\mongo-c-driver" "-DCMAKE_PREFIX_PATH=E:\_FX_WorkPlace\MongoDB\mongo-c-driver" ..
:这两个路径都是第一步创建的文件夹的路径
5.msbuild ALL_BUILD.vcxproj
:编译;
6.msbuild INSTALL.vcxproj
:安装;
补充:
也可以点开.sln文件手动编译,生成这两个即可ALL_BUILD
和INSTALL
。
3.变化
1).
2).
3).
4).
5).
6).
mongo-cxx-driver
1.手动创建一个文件夹,我的命名为mongo-cxx-driver
;
2.打开此工具
3.依次执行:
1).cd D:\____Install____\mongo-cxx-driver-3.6.1\mongo-cxx-driver-r3.6.1
:进入解压后的根目录;
2).mkdir MSVC15
:创建一个文件夹;
3).cd MSVC15
:进入这个文件夹;
4).cmake -G “Visual Studio 15 2017 Win64” -DBSONCXX_POLY_USE_BOOST=1 -DCMAKE_PREFIX_PATH=之前创建的mongo-c-driver文件夹的路径 -DBOOST_ROOT=boost_1_73_0的路径 -DCMAKE_INSTALL_PREFIX=创建的mongo-cxx-driver的路径 ..
5).msbuild ALL_BUILD.vcxproj
:编译;
6).msbuild INSTALL.vcxproj
:安装;
补充:
也可以点开.sln文件手动编译,生成这两个即可ALL_BUILD
和INSTALL
。
4.生成之后的文件夹内容:
4.VS2017环境配置
1.配置属性-调试-环境:cxx的bin文件夹路径和c的bin文件夹路径。
PATH=D:\mongodb_C++\mongo-cxx-driver-x64-3.6.1\bin;D:\mongodb_C++\mongo-c-driver-1.17.2\mongo-c-driver\bin
2.C/C+±常规-附加包含目录:
D:\mongodb_C++\mongo-cxx-driver-x64-3.6.1\include\bsoncxx\v_noabi
D:\mongodb_C++\mongo-cxx-driver-x64-3.6.1\include\mongocxx\v_noabi
3.C/C+±语言-C++语言标准:
4.C/C+±预处理器-预处理器定义:
_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
5.链接器-常规-附加库目录:
D:\mongodb_C++\mongo-cxx-driver-x64-3.6.1\lib\bsoncxx.lib
D:\mongodb_C++\mongo-cxx-driver-x64-3.6.1\lib\mongocxx.lib
6.链接器-输入-附加依赖项:
bsoncxx.lib
mongocxx.lib
5.测试
代码:
#include <iostream>
#include "bsoncxx/builder/stream/document.hpp"
#include "mongocxx/instance.hpp"
#include "mongocxx/uri.hpp"
#include "mongocxx/client.hpp"
using namespace std;
int main()
{
mongocxx::instance instance{};
mongocxx::uri uri("mongodb://127.0.0.1:27017");
mongocxx::client client(uri);
//cout << "sdafasd" << endl;
// 创建数据库
mongocxx::database db = client["mytestdb"];
// 创建集合
mongocxx::collection coll = db["testcoll"];
// 插入
try
{
for (int i = 1; i <= 10; ++i)
{
auto builder = bsoncxx::builder::stream::document{};
builder << "userid" << i
<< "name" << "username"
<< "age" << rand() % 100;
//添加一组数据
coll.insert_one(builder.view());
cout << "insert : " << i << endl;
}
}
catch (const std::exception& e)
{
cout << "insert error : " << e.what();
}
catch (const std::exception& e)
{
std::cout << "insert error : " << e.what();
}
return 0;
}
控制台:
可视化界面:
6.错误处理
1)无法打开boostxxx
方法一:
a.右键项目,选择管理Nuget包
b.点击浏览-搜索boost-下载第一个
方法二:
自己安装好boost后要在VS环境中设置路径。