當前位置:首頁 » 數據倉庫 » mongo資料庫操作
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mongo資料庫操作

發布時間: 2022-09-09 23:31:37

❶ 怎麼連接mongo資料庫

執行啟動操作後,mongodb 在輸出一些必要信息後不會輸出任何信息,之後就等待連接的建立,當連接被建立後,就會開始列印日誌信息。
你可以使用 MongoDB shell 來連接 MongoDB 伺服器。你也可以使用 PHP 來連接 MongoDB。本教程我們會使用 MongoDB shell 來連接 Mongodb 服務,之後的章節我們將會介紹如何通過php 來連接MongoDB服務。
標准 URI 連接語法:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
mongodb:// 這是固定的格式,必須要指定。
username:password@ 可選項,如果設置,在連接資料庫伺服器之後,驅動都會嘗試登陸這個資料庫
host1 必須的指定至少一個host, host1 是這個URI唯一要填寫的。它指定了要連接伺服器的地址。如果要連接復制集,請指定多個主機地址。
portX 可選的指定埠,如果不填,默認為27017
/database 如果指定username:password@,連接並驗證登陸指定資料庫。若不指定,默認打開 test 資料庫。
?options 是連接選項。如果不使用/database,則前面需要加上/。所有連接選項都是鍵值對name=value,鍵值對之間通過&或;(分號)隔開

❷ mongodb使用場景是什麼

使用場景:

(1)網站數據:MongoDB適合實時的插入,更新與查詢,並具備網站實時數據存儲所需的復制及高度伸縮性。

(2)緩存:由於性能很高,MongoDB也適合作為信息基礎設施的緩存層。在系統重啟之後,由MongoDB搭建的持久化緩存層可以避免下層的數據源過載。

(3)大尺寸,低價值的數據。

(4)高伸縮性的場景:MongoDB適合由數十或數百台伺服器組成的資料庫。

(5)用於對象及JSON數據的存儲:MongoDB的BSON數據格式適合文檔化格式的存儲及查詢。

mongodb設計特點:

(1)面向集合存儲,容易存儲對象類型的數據。在MongoDB 中數據被分組存儲在集合中,集合類似RDBMS 中的表,一個集合中可以存儲無限多的文檔。

(2)模式自由,採用無模式結構存儲。在MongoDB 中集合中存儲的數據是無模式的文檔,採用無模式存儲數據是集合區別於RDBMS 中的表的一個重要特徵。

(3)支持完全索引,可以在任意屬性上建立索引,包含內部對象。MongoDB的索引和RDBMS 的索引基本一樣,可以在指定屬性、內部對象上創建索引以提高查詢的速度。除此之外,MongoDB 還提供創建基於地理空間的索引的能力。

(4)支持查詢。MongoDB 支持豐富的查詢操作,MongoDB 幾乎支持sql中的大部分查詢。

(5)強大的聚合工具。MongoDB 除了提供豐富的查詢功能外,還提供強大的聚合工具,如count、group 等,支持使用MapRece 完成復雜的聚合任務。

❸ windows下安裝好mongodb後怎麼創建資料庫

一、安裝mongoDB
1、解壓mongodb-win32-i386-1.8.2至E:\MyProgram\mongodb-win32-i386-1.8.2(你可以按照自己的路徑來,路徑中最好不要有空格,要不然麻煩)
2、新建文件夾C:\DATA\DB,這是mongoDB的默認數據文件夾,你也可以在文件夾E:\MyProgram\mongodb-win32-i386-1.8.2新建一個文件夾data作為mongoDB的資料庫文件存儲目錄
3、進入CMD,運行命令E:\MyProgram\mongodb-win32-i386-1.8.2\bin\mongod.exe -dbpath E:\MyProgram\mongodb-win32-i386-1.8.2\data,OK,mongoDB已經安裝成功並已經在運行中了,你將會看到如下:

此時是mongoDB的運行狀態,你可以按Ctrl+C結束運行狀態或者直接關掉CMD結束運行。
二、運行mongoDB時的錯誤與處理
完成安裝後,結束掉所有CMD窗口,然後進行如下操作:
1、運行E:\MyProgram\mongodb-win32-i386-1.8.2\bin\mongo,可能會報錯誤:couldn't connect to server 127.0.0.1 shell/mongo.js,原因是mongod.exe沒有啟動,
2、既然沒啟動,那咱就啟動唄,運行E:\MyProgram\mongodb-win32-i386-1.8.2\bin\mongod,可能會報錯誤:dbpath (/data/db/) does not exist, terminating,看這樣子,本人覺得還得在data文件夾下再建一個db文件夾啊,如此即新建一db文件夾,再運行mongod命令,結果提示一樣,不知道怎麼搞啦,咱google吧
找到文章http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo
說「To start Mongo in default mode, where data will be stored in the /data/db directory (or c:\data\db on Windows), and listening on port 27017」,哦,原來默認的文檔路徑在c:\data\db,啥也不說,直接按這個建文件夾,再次運行命令mongod,OK了,啟動成功,這個命令窗口不能關閉,否則mongoDB就退出了
三,使用mongo命令
保持mongod命令窗口的運行狀態,再新開一命令窗口
輸入E:\MyProgram\mongodb-win32-i386-1.8.2\bin\mongo,出現
MongoDB shell version:1.8.2
connecting to:test
>
OK,連接成功。
1,show dbs 顯示資料庫列表
2,use Northwind 進入Northwind資料庫,大小寫敏感
3,show collections 顯示資料庫中的集合
4,db 用於查看當前所在的資料庫
5,db.Customer.count() 查看集合Customer的記錄總數
6,db.Customer.findOne({"_id":"1"}) 查看CustomerId=1的記錄
新增數據
1,use MyTest,這個資料庫不存在,無所謂,mongo會創建,
MongoDB在使用前,並不要求您事先創建好相應的資料庫,設計數據表結構!
在MongoDB中,沒有【表】的概念,取而代之的是【集合】,也沒有【數據記錄】的概念,取而代之的是【文檔】,我們可以把【文檔】理解成一個【對象】,任意的對象,甚至可以有復雜的嵌套層次。
因此,我們不用再寫代碼從【數據表欄位】到C#類的【屬性,欄位】的轉換了,現在直接就可以讀寫整個對象了。
而且MongoDB不支持Join操作,所以,如果有【關聯】操作,就需要你自己來處理
2,item={"Key":"1","text":"wokao","number":3}
3,db.table1.insert(item),mongo將建立集合table1,並將item插入,完成了新增加資料庫的工作
4,db.table1.find()顯示table1中的數據,MongoDB的文檔使用的是一種稱為BSON格式的對象,與Javascript中的JSON類似
5,額外的,輸入item1={"Id":5,"str":"asdfasdf"},再插入db.table1.insert(item1),再用find()命令看,也插入成功了~,注意到結構和item不一樣!但不建議這樣做。
注意到:【每個文檔有一個名為 "_id" 的成員】,我可沒有定義啊。
其實,MongoDB會為每個文檔都創建這樣一個文檔成員,我們指定的 "key", "id" 對於MongoDB來說:它們並不是【文檔的主鍵】,MongoDB只認 "_id",你可以指定,但如果不指定,MongoDB就自動添加。
修改數據
1,var t=db.table1.findOne({"Id":5}),獲取一條記錄
2,t.str="wokao"
3,db.table1.update({"Id":5},t)
刪除數據
db.table1.remove({"Id":5})
查找數據
上面已經有find和findOne命令,即用於查詢
db.table1.find()
MongoDB的查詢條件中,並沒有 >, <, >= , <= 這些運算符,而是使用 "$lt", "$lte", "$gt", "$gte"
新建表
db.MyTest.table2.save({})
刪除表
db.table1.drop()或db.runCommand({"drop","table1"})
刪除資料庫
db.runCommand({"dropDatabase": 1}),此命令只能刪除當前資料庫
獲取服務端狀態信息
db.runCommand({"serverStatus" : 1})

❹ MongoDB在ThinkPHP裡面怎麼進行資料庫操作

連接資料庫
$conn=new Mongo(「mongodb://sa:123@localhost」); #帶用戶名密碼
選擇資料庫和集合
$db=$conn->selectDB(「mydb」);
$collection = $db->selectCollection(『column』);
增刪改查
1.插入
$array=array(『column_name』=>』col』.rand(100,999),』column_exp』=>』xiaocai』);

$result=$collection->insert($array); #簡單插入
2. 修改更新
$where=array(『column_name』=>』col123′);
$newdata=array(『column_exp』=>』GGGGGGG』,'column_fid』=>444);
$result=$collection->update($where,array(『$set』=>$newdata));
3.刪除
$where=array(『column_name』=>』col685′);
$result=$collection->update($where,array(『$unset』=>』column_exp』));
4.查詢

$result = $collection->find();

❺ mongodb資料庫適合做什麼

mongodb眾所周知不支持事務,所以需要強事務的業務根本不能考慮mongodb。
mongodb的優勢就是文檔存儲:
1. 業務經常變動,需要不時的添加欄位,那麼mongodb比較適合,關系型資料庫添加欄位的復雜度也還好
2. 嵌套文檔,業務數據比較復雜,適合嵌套文檔式存儲,那麼mongodb非常合適,這個關系型資料庫比較難搞,雖然MySQL和pg也有文檔存儲,但MySQL的不成熟,pg畢竟現在生產中使用還是偏少,個人也不了解,這里不談。但這不僅僅這一點優勢,具體下面會細說。
3. upsert支持,查詢速度也不慢
4. 高可用的副本集支持
5. 查詢語法非常豐富,嵌套文檔查詢功能非常強大,不是重度用戶可能不能理解
下面說說一個具體的使用事例:
項目的一條數據在10kb左右,如果使用關系型資料庫那麼需要將這條數據拆分成大概幾百條左右,建造多個表,設計較復雜,這種數據大概在一百萬條左右,想想拆分後在十幾億的數據量就可怕。打平後的數據什麼DB也都可以拿下,只是一百萬變十幾億比較恐怖而已。
如果採用MySQL存儲,每次查詢需要使用外鍵查詢多個表,從這些表中拉取數據,性能肯定要下降很多,比不上只在一個表查詢,而且只拉取少兩個數量級的數據。查詢也還好,業務允許可以對結果做緩存,放到redis里去。
但是重點來了,需求要增量更新部分數據,這時候需要更新多個表,根本沒法做到原子性(注意事務不是原子操作),當然也可以使用cas等技術補償,達到最終一致性。但使用mongodb存儲只需要update一條數據,對相應的嵌套文檔中內容更新,可以做到原子性,是不是很方便?
推薦學習《python教程》
具體說說該項目的難點,查詢無法使用緩存,可能會很吃驚,但是業務決定了確實做不了,而且增量更新的量達到上萬的QPS,如果不能保證原子性想想多麼可怕!
所以mongodb在這里幫了大忙,關系型資料庫解決不了這個難題。
有人可能要問,mongodb沒有事務,上游數據寫入也會有問題,你不可能所有數據都存一個表吧?
當然不是的,我們mongodb里的數據是從MySQL中清洗出來存到mongodb中的,mongodb只做單點的業務需求,綜合的數據還是在MySQL中。
此項目我們用了上百個副本集,保證系統的高可用,這些副本集配置只要一條shell就搞定,如果用MySQL的主從不知道怎麼配(我自己不懂),估計DBA得忙死,而該項目完全不需要也沒用到DBA。
說了這么多mongo的優點,也說說他的缺點:
1. 查詢優化器和MySQL沒法比
2. 不支持reload,只能冷重啟,初始化配置的時候比較麻煩
3. 沒有事務,不敢存儲第一手數據,多用來做備份數據的存儲
mongodb可以做很多事情,取決於你腦洞,性能不差,存一些相對不重要的數據,mongodb嵌套文檔功能強大,多看看官方文檔挖掘挖掘有用信息,每次都能發現驚喜。

❻ 如何在window下使用mongodb

1、下載MongoDB資料庫;

2、將安裝文件解壓到C盤(注意:安裝路徑中不能出現空格),配置「環境變數」,將 %MONGODB_HOME%in 添加到「Path」中;

3、進入DOS窗口,設置數據保存目錄(與埠)和日誌輸出目錄。
DOS命令:

mongod --port --dbpath --logpath --logappend --directoryperdb

參數說明:
--port 表示資料庫埠,默認27017;
--dbpath 表示數據文件存儲路徑,一般設置為%MONGODB_HOME%data;
--logpath 表示日誌文件存儲路徑,一般設置為%MONGODB_HOME%logsmongodb.log;
--logappend 表示日誌追加,默認是覆蓋;
--directoryperdb 表示每個db一個目錄;

4、完成以上設置,MongoDB已經啟動,新開啟DOS窗口,執行「mongo.exe」,出現「MongoDB shell version: 1.8.1」表示安裝成功了。

5、目前是以無許可權限制的方式啟動的,你可以做任何操作。那麼我們先切換到admin下,創建一個root用戶吧。執行命令:
"use admin" -> "db.addUser("root","root")" -> "db.auth("root","root")",如下圖所示:

6、把MongoDB注冊為Windows Service,讓它開機自動啟動;執行命令:

mongod --bind_ip 127.0.0.1 --logpath %MONGODB_HOME%logsmongodb.log --logappend --dbpath %MONGODB_HOME%data --directoryperdb --auth --install

注意:
a.必須切換到bin目錄下執行該條指令。
b.必須添加--auth用戶許可權才會生效。
c.除了「--auth」和「--install」兩個參數,別的參數要跟你設置用戶時啟動服務的參數一致,尤其是「--directoryperdb」。
第一次配置完成後,一定要重啟才會有效果 重啟mongo客戶端,不輸入-u-p可以直接進入,但是不具有任何許可權。正確的訪問方式為:mongo 資料庫名 -u 用戶名 -p。另外設置用戶

7、服務安裝成功後的界面:

8、如果安裝失敗:
刪除MongoDB服務,執行命令:

sc delete MongoDB

啟動MongoDB服務,執行命令:

net start "MongoDB"

9、在cmd下可有兩種方法打開,net和sc,net用於打開沒有被禁用的服務,語法是:
啟動:net/sc start 服務名
停止:net/sc stop 服務名

10、另外,sc可用於打開被禁用的服務,語法是:
sc config 服務名 start= demand //手動
sc condig 服務名 start= auto //自動
sc config 服務名 start= disabled //禁用
注意:以上三個命令「=」號後面必須有一個空格

Mongo(也譯芒果)名字來自humongous,意思是巨大無比的,極大的。它是一個高性能,開源,無模式的文檔型NOSQL資料庫。Mongo使用C++開發,提供了以下功能:

面向集合的存儲:適合存儲對象及JSON形式的數據。

動態查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。

完整的索引支持:包括文檔內嵌對象及數組。Mongo的查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。

查詢監視:Mongo包含一個監視工具用於分析資料庫操作的性能。

復制及自動故障轉移:Mongo資料庫支持伺服器之間的數據復制,支持主-從模式及伺服器之間的相互復制。復制的主要目標是提供冗餘及自動故障轉移。

高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。

自動分片以支持雲級別的伸縮性:自動分片功能支持水平的資料庫集群,可動態添加額外的機器。

MongoDB服務端可運行在Linux、Windows或OS X平台,支持32位和64位應用,在32位模式運行時支持的最大文件尺寸為2GB。
常用啟動參數:
–dbpath 指定特定存儲目錄啟動,若目錄不存在則創建。默認目錄為/data/db。例:./mongod –dbpath /var/data/mongo
–port 指定埠啟動。默認埠為27017。例:./mongod –port 12345

windows 下使用方法
直接啟動:
$ bin/mongod.exe #啟動伺服器
$ bin/mongo.exe #啟動客戶端連接

注冊為服務,這樣以後開機就可以自動啟動
$ bin/mongod.exe --logpath c:\data\log.log --logappend --dbpath "c:\data\db" --install #主要是install 參數,要新建c:\data\log.log文件和c:\data\db目錄

刪除服務
$ bin/mongod.exe --remove

當注冊為服務時可以Win+R打開運行,輸入services.msc來查看服務狀態

常見錯誤
1、monge.exe客戶端連接時報錯:couldn』t connect to server 127.0.0.1 shell/mongo.js:79
這是因為monged.exe啟動失敗

2、多次嘗試後monged.exe啟動失敗,始終沒找到原因
這個錯誤困擾了我一段時間,後來發現c:\data\db下有個mongod.lock鎖文件,把這個文件刪除後,重新啟動伺服器就可以了。

服務啟動報錯: error2: system can not find the file specified.

solution:
安裝服務的時候, 你需要用 mongod.exe的 full path

C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install

to remove service

C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --remove

and re open windows service windows, the original service will gone.

❼ mongodb 怎麼把文件導入進去

  • 打開MongoChef並連接上MongoDB資料庫,如下圖所示:

❽ linux怎麼連接mongodb資料庫

想在shell中連接資料庫,首先要在連接數據的機器上安裝mongodb的客戶端才可以。客戶端的安裝在這里不再重復,自己網路或者google一下吧。連接mongodb的命令如下:/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888
這個是我的資料庫配置,沒有設置用戶名密碼。所以直接通過該命令就可以連接。
連結後會有一個默認連接的資料庫。
mongodb常用命令:

查看資料庫命令:
show dbs;
查看集合命令:
show collections;
切換資料庫:
use databaseName;
查詢數據:
db.集合名.find()
插入數據:
db.集合名.insert({name:'test',age:1});
刪除:
db.test.remove();
sql="db.test.insert({name:'test',age:1});"//定義執行的sqlecho "$sql"|/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888/test --shell
注意,echo命令中的格式必須這樣寫,管線命令後面的是是資料庫安裝地址 然後是ip:埠號,斜線後是資料庫名稱,--shell表示通過shell交互!

❾ 如何使用mongodb資料庫工具

1、基於mongo實現遠程連接

[plain] view plain

mongo -u admin -p admin 192.168.0.197:27017/pagedb

通過mongo實現連接,可以非常靈活的選擇參數選項,參看命令幫助,如下所示:

[plain] view plain

mongo --help
MongoDB shell version: 1.8.3
usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
foo foo database on local machine
192.169.0.5/foo foo database on 192.168.0.5 machine
192.169.0.5:9999/foo foo database on 192.168.0.5 machine on port 9999
options:
--shell run the shell after executing files
--nodb don't connect to mongod on startup - no 'db address'
arg expected
--quiet be less chatty
--port arg port to connect to
--host arg server to connect to
--eval arg evaluate javascript
-u [ --username ] arg username for authentication
-p [ --password ] arg password for authentication
-h [ --help ] show this usage information
--version show version information
--verbose increase verbosity
--ipv6 enable IPv6 support (disabled by default)

2、基於MongoDB支持的javascript實現遠程連接

當你已經連接到一個遠程的MongoDB資料庫伺服器(例如,通過mongo連接到192.168.0.184),現在想要在這個會話中連接另一個遠程的資料庫伺服器(192.168.0.197),可以執行如下命令:

[plain] view plain

> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb');
> use ydb
switched to db ydb
> db
ydb
> ydb.page.findOne()
{
"_id" : ObjectId("4eded6a5bf3bfa0014000003"),
"content" : "巴黎是浪漫的城市,可是...",
"pubdate" : "2006-03-19",
"title" : "巴黎:從布魯塞爾趕到巴黎",
"url" : "http://france.bytravel.cn/Scenery/528/cblsegdbl.html"
}

上述通過MongoDB提供的JavaScript腳本,實現對另一個遠程資料庫伺服器進行連接,操作指定資料庫pagedb的page集合。

如果啟用了安全認證模式,可以在獲取資料庫連接實例時,指定認證賬號,例如:

[plain] view plain

> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb', 'shirdrn', '(jkfFS$343$_\=\,.F@3');
> use ydb
switched to db ydb

❿ mongodb怎麼將知網資料庫導入

mongodb將知網資料庫導入的操作如下:
把大量數據導入資料庫中:
mongoimport -d 資料庫名稱 -c 集合名稱 -file 要導入的知網數據文件。
找到mongodb資料庫的安裝目錄,將安裝目錄下的bin目錄放置在環境變數中。
如果bin目錄裡面少.exe文件,下面的鏈接里有bin目錄下的所有.exe文件,下載然後復制到bin目錄下就可以了。
MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB是一個介於關系資料庫和非關系資料庫(nosql)之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。首先在你的伺服器上安裝好MongoDB,window平台安裝 MongoDB,Linux平台安裝MongoDB,之後連接MongoDB,創建資料庫,刪除資料庫。