當前位置:首頁 » 編程軟體 » 編譯mongodb

編譯mongodb

發布時間: 2022-05-30 15:37:20

Ⅰ 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的版本,是否對應好了。

熱點內容
javaeffective 發布:2024-05-21 11:39:58 瀏覽:765
演算法高效 發布:2024-05-21 11:16:06 瀏覽:139
十年前電腦做伺服器 發布:2024-05-21 11:14:35 瀏覽:971
解壓之音 發布:2024-05-21 11:07:37 瀏覽:866
安卓如何玩手機游戲 發布:2024-05-21 10:03:15 瀏覽:109
好的少兒編程學校 發布:2024-05-21 10:02:38 瀏覽:439
c語言字元個數統計 發布:2024-05-21 09:54:31 瀏覽:415
ubuntupython文件 發布:2024-05-21 09:41:01 瀏覽:162
java後端介面 發布:2024-05-21 09:40:59 瀏覽:931
豪華尊貴分別對應哪些配置 發布:2024-05-21 09:40:56 瀏覽:621