编译mongodb
Ⅰ libmongodbclient.a c++程序编译时提示找不到命名空间
查看库头文件,看看用的什么命名空间,然后在源程序中加入using namespace ...
或者使用全称(带类名)。
Ⅱ 如何将MongoDB改造成内存数据库
日前有测试需求将MongoDB改成内存数据库。我们知道MongoDB有一个In-Memory存储引擎,但是社区版不能用。所以我们自己想办法将MongoDB改造成内存数据库,经过探索,有三种方式。
研究版本:mongo-3.4
方式一:使用tmpfs作为文件系统
方式二:使用ramfs作为文件系统
这两种方式的思路都差不多,使用一个内存模拟文件系统,由于替换了磁盘文件系统,数据就保留在内存中。
方式三:修改源码设置in_memory参数
其实wiredtiger本身就支持将数据保留在内存中不刷盘,MongoDB的内存引擎估计也是利用wt的这一特性。wiredtiger.in文件中,wiredtiger_open()函数会传入配置信息config,函数前面的注释详细解释了有哪些配置项,其中就列出了in_memory配置,如下图说明。 
然后启动./mongod –dbpath {path} –nojournal
Ⅲ mongodb在java中怎么做修改操作
java 操作mongodb插入、读取、修改以及删除基础
本文主要讲述如何使用Java操作MongoDB以及了解MongoDB如何进行日常的数据库操作。文章内容如下:第一步:安装MongoDB无需太多的繁杂步骤,你只要在MongoDB官方网站查看安装说明,根据自己的操作系统进行选择适应的版本即可。第二步:启动MongoDB服务器这一步也很简单。运行mongod.exe文件里的bin文件夹(我使用的是Windows OS系统),并启动MongoDB服务器。在默认的情况下服务器将启动端口27017,你需要在安装过程中创建将数据存储在/data/db目录里。第三步:启动MongoDB shell指令你可以通过运行mongo.exe文件来启动MongoBD shell。第四步:利用MongoDB创建数据库利用MongoDB在MongoDB shell中输入以下内容建立一个名为“company”的数据库。use company 记住,除非你在MangoDB里保存了一些东西,否则它不会自动为你保存。使用下面的命令帮你查看可用的数据库,它会显示“company”尚未被创建。show dbs; 第五步:在MongoDB中保存数据使用下面的命令来保存employee 数据代表一个collection,将其命名为employees。employee = {name : "A", no : 1} db.employees.save(employee) 通过使用下面的命令来查看collection里的数据。db.users.find(); 如何使用Java操作MongoDB?下面是是一段简单的Java代码,你可以在这里获得mongo-java驱动。很简单,只需要使用下面的代码,重复上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } } 结果如下:{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2} The Search Query has Executed! 小结:随着互联网Web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展也非常迅速。本文浅显的谈及了如何使用Java操作MongoDB以及了解MongoDB如何进行日常的数据库操作的问题。如果您是这方面的专家不妨与我们分享下。本文为CSDN编译整理,未经允许不得转载。
Ⅳ linux mongodb 数据存储在哪
如果是你的硬盘满了,你可以再用别的硬盘跟这个硬盘构成RAID。
如果是你的一个BSON doc快满了,那么说明你的存储的数据结构是有问题的,如果可能的话,应该重新设计以使BSON doc不超过限制;如果不能的话,那么你可以修改
源文件“mongo / src / mongo / bson / util / builder.h”里面的
1
const int BSONObjMaxUserSize = 16 * 1024 * 1024;
到你需要的大小,然后重新编译mongodb。但不要改的太大,因为每一个BSON Object都是要全部读进内存里的。
Ⅳ 编译mongodb3.0 c++驱动时,openssl已经装上了,怎么还是提示“ssl is enabled but is unavailable”a
我是win下这种情况,加入ssl的包含路径和库路径后,修改sconstruct
env 中LIBS加上 user32.lib,gdi32.lib,advapi32.lib
猜测是老版本的ssl不需要这些东西
Ⅵ mongodb需要java基础吗
需要有java基础。

Java 基础语法
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
编写 Java 程序时,应注意以下几点:大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirstJavaClass。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
Ⅶ 怎样在window上编译mongodb c++2.5.5 driver
源码安装,mongod.conf貌似需要自己撸一个。
也许是我没找到,上官网上看了些,也没看说在哪,就自己弄了个。
参考资料的链接可以去看看。
Ⅷ 为什么我的mongodb下载解压之后没有bin文件夹
根据描述截图,下载的是源码,需要自己编译生成。
最好直接下载二进制的安装包,下载后安装后直接就可以使用。
下载地址:http://www.mongodb.org/
Ⅸ mongodb 编译报错,我在Linux下的程序,src下面的库都编译过了生成了.a库文件,但mian下面生成执行文件报错
你可以在头文件里设置目录啊,直接"include "/.../.../xxx.h""文件就可以了
Ⅹ mongodb 源码中的c++驱动怎么编译
完成了VS2010编译Mongo C++ Driver,中间遇到了不少问题,记录一下。
1、安装scons
(1) 下载python2.7, 使用x86_32位,因为scons只有32位安装包可用;
(2) 下载scons2.3.0;
(3) 安装python 和 scons, 将C:\Python27\Scripts写入PATH;
(4) 下载安装pywin32 ,It is recommended you install pywin32 if you want to do parallel builds (scons -j)
2、安装boost库(1.49版本).
解压后双击bootstrap.bat,生成bjam.exe后,cd到目录c:\boost下,(将boost_1_49更名为boost了)编译boost。
编译命令:C:\boost>bjam variant=release --with-filesystem --with-thread --with-date_time --with-program_options threading=multi toolset=msvc-10.0 link=static runtime-link=static address-model=32
这是使用VS2010环境编译的release版本,编译完成后,生成C:\boost\stage\lib文件夹,下面有6个lib库:
如果要编译成debug版本,使用命令:bjam variant=debug --with-filesystem --with-thread --with-date_time --with-program_options threading=multi toolset=msvc-10.0 link=static runtime-link=static address-model=32
编译完成后,生成C:\boost\stage\lib文件夹,下面有10个lib库和dll:
此处为MongoDB文档中对于编译boost库的要求原文:
When using bjam, MongoDB expects
variant=debug for debug builds, and variant=release for release builds
threading=multi
link=static runtime-link=static for release builds
address-model=64 for 64 bit(64位的话,把32换为64)。link=static runtime-link=static,boost需要编译成静态库,因为mongodb只会去链接boost的静态库
address-model=64在win7 64环境下此项必须,不加在编译mongodb的c++ client时会出现链接错误。
3、下载mongo2.4.6源码 http://www.mongodb.org/downloads官网下载
编译Mongoclient.lib
cmd命令提示符下,cd到解压后的文件目录,例如我放在了E盘,E:\mongodb-src-r2.4.6,输入命令:
scons –-dd --32 mongoclient.lib // build C++ client driver library
Add --64 or --32 to get the 64- and 32-bit versions, respectively. Replace --release with --dd to build a debug build.
编译后在mongodb\build\win32\32\dd\client_build\生成mongoclient.lib.
4、测试程序
就用Mongodb自带的例子吧,使用VS2010打开E:\mongodb-src-r2.4.6\src\mongo\client\examples中的simple_client_demo.vcxproj,编译,会提示生成simple_client_demo.sln,保存。
使用debug模式,配置工程环境:打开工程->属性,配置Configuration Properties下的VC++ Directories,头文件路径添加C:\boost,Lib库路径添加boost的lib,以及mongodb client的lib:
C:\boost\stage\lib
E:\mongodb-src-r2.4.6\build\win32\32\dd\client_build
进入C/C++下面的Code Generation,将Runtime Library设置为Multi-threaded Debug (/MTd)
进入Linker下面的Input,设置Additional Dependencies,添加ws2_32.lib,psapi.lib,Dbghelp.lib,mongoclient.lib
将E:\mongodb-src-r2.4.6\build\win32\32\dd\mongo\base下生成的error_codes.h和error_codes.cpp文件,拷贝到E:\mongodb-src-r2.4.6\src\mongo\base目录下。
ok,编译、运行.
5、问题解决
error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(dbclient.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(assert_util.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(jsobj.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(status.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
1>mongoclient_d.lib(mutexdebugger.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in error_codes.obj
VS的版本不匹配,lib是在更高级的版本中编译生成的,而使用的时候,是在低级版本中使用的,所以出现了不匹配的错误。例如,我在VS2010 SP1和VS2012的环境下编译的,而使用是在VS2010上使用,所以在编译时,出现了以上问题。
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymCleanup
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymGetMoleInfo64
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymInitialize
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_StackWalk64
1>mongoclient.lib(stacktrace.obj) : error LNK2001: unresolved external symbol __imp_SymFromAddr
在工程依赖库中添加Dbghelp.lib
其它问题,看看你手头的编译器、编译出来的boost库版本、mongoclient.lib的版本,是否对应好了。
