windows下mongodb安裝與使用整理

一、首先安裝mongodb

1.下載地址:http://www.mongodb.org/downloads

2.解壓縮到自己想要安裝的目錄,比如d:\mongodb

3.創建文件夾d:\mongodb\data\db、d:\mongodb\data\log,分別用來安裝db和日志文件,在log文件夾下創建一個日志文件MongoDB.log,即d:\mongodb\data\log\MongoDB.log

4.運行cmd.exe進入dos命令界面,執行下列命令

  > cd d:\mongodb\bin

  > d:\mongodb\bin>mongod -dbpath "d:\mongodb\data\db"

 看到類似的信息,則說明啟動成功,默認MongoDB監聽的端口是27017,mysql的是3306

5.測試連接

 新開一個cmd窗口,進入mongodb的bin目錄,輸入mongo或者mongo.exe,出現如下信息說明測試通過,此時我們已經進入了test這個數據庫,如何進入其他數據庫下面會說。

 

 輸入exit或者ctrl+C可退出。

?6.當mongod.exe被關閉時,mongo.exe 就無法連接到數據庫了,因此每次想使用mongodb數據庫都要開啟mongod.exe程序,所以比較麻煩,此時我們可以將MongoDB安裝為windows服務

 還是運行cmd,進入bin文件夾,執行下列命令

 > d:\mongodb\bin>mongod --dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

 這里MongoDB.log就是開始建立的日志文件,--serviceName "MongoDB" 服務名為MongoDB

 接著啟動mongodb服務

 >?d:\mongodb\bin>NET START MongoDB

 

 打開任務管理器,可以看到進程已經啟動

7.關閉服務和刪除進程

 > d:\mongodb\bin>NET?stop MongoDB?? (關閉服務)

 > d:\mongodb\bin>mongod --dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB"????? (刪除,注意不是--install了)

?

二、使用mongodb

1.常用的命令

  • show dbs ? ?顯示數據庫列表
  • use dbname ? ?進入dbname數據庫,大小寫敏感,沒有這個數據庫也不要緊
  • show collections ? ?顯示數據庫中的集合,相當于表格

2.創建&新增

  • db.users.save({"name":"lecaf"}) ? ?創建了名為users的集合,并新增了一條{"name":"lecaf"}的數據
  • db.users.insert({"name":"ghost", "age":10}) ? ?在users集合中插入一條新數據,,如果沒有users這個集合,mongodb會自動創建
  • save()和insert()也存在著些許區別:若新增的數據主鍵已經存在,insert()會不做操作并提示錯誤,而save() 則更改原來的內容為新內容。
    • 存在數據:{ _id : 1, " name " : " n1 "} ,_id是主鍵
    • insert({ _id : 1, " name " : " n2 " }) ? ?會提示錯誤
    • save({ _id : 1, " name " : " n2 " }) ? ? 會把 n1 改為 ?n2 ,有update的作用。

3.刪除

  • db.users.remove() ? ?刪除users集合下所有數據
  • db.users.remove({"name": "lecaf"}) ? ?刪除users集合下name=lecaf的數據
  • db.users.drop()或db.runCommand({"drop","users"}) ? ?刪除集合users
  • db.runCommand({"dropDatabase": 1}) ? ?刪除當前數據庫

4.查找

  • db.users.find() ? ?查找users集合中所有數據
  • db.users.findOne() ? ?查找users集合中的第一條數據

5.修改

  • db.users.update({"name":"lecaf"}, {"age":10}) ? ?修改name=lecaf的數據為age=10,第一個參數是查找條件,第二個參數是修改內容,除了主鍵,其他內容會被第二個參數的內容替換,主鍵不能修改,如圖

 

三、高級應用

1.條件查找

  • db.collection.find({ "key" : value }) ? ?查找key=value的數據
  • db.collection.find({ "key" : { $gt: value }?}) ? ?key > value
  • db.collection.find({ "key" :?{ $lt: value }?}) ? ?key < value
  • db.collection.find({ "key" :?{ $gte: value }?}) ? ?key >= value
  • db.collection.find({ "key" :?{?$lte: value }?}) ? ?key <= value
  • db.collection.find({ "key" :?{ $gt: value1 , $lt: value2?}?}) ? ?value1 < key <value2
  • db.collection.find({ "key" :?{?$ne: value }?}) ? ?key <> value
  • db.collection.find({ "key"?: { $mod : [ 10 , 1 ] } }) ? ?取模運算,條件相當于key % 10 == 1 即key除以10余數為1的
  • db.collection.find({?"key"?: { $nin: [ 1, 2, 3 ] } }) ? ?不屬于,條件相當于key的值不屬于[ 1, 2, 3 ]中任何一個
  • db.collection.find({?"key"?: { $in: [ 1, 2, 3 ] } }) ? ?屬于,條件相當于key等于[ 1, 2, 3 ]中任何一個
  • db.collection.find({ "key"?: { $size: 1 } }) ? ?$size 數量、尺寸,條件相當于key的值的數量是1(key必須是數組,一個值的情況不能算是數量為1的數組)
  • db.collection.find({ "key"?: { $exists : true|false } }) ? ?$exists 字段存在,true返回存在字段key的數據,false返回不存在字度key的數據
  • db.collection.find({ "key": /^val.*val$/i }) ? ?正則,類似like;“i”忽略大小寫,“m”支持多行
  • db.collection.find({ $or : [{a : 1}, {b : 2} ] }) ? ?$or或 (注意:MongoDB 1.5.3后版本可用),符合條件a=1的或者符合條件b=2的數據都會查詢出來
  • db.collection.find({ "key": value , $or : [{ a : 1 } , { b : 2 }] }) ? ?符合條件key=value?,同時符合其他兩個條件中任意一個的數據
  • db.collection.find({ "key.subkey" :value }) ? ?內嵌對象中的值匹配,注意:"key.subkey"必須加引號
  • db.collection.find({ "key": { $not : /^val.*val$/i?} }) ? ?這是一個與其他查詢條件組合使用的操作符,不會單獨使用。上述查詢條件得到的結果集加上$not之后就能獲得相反的集合。

2.排序

  • db.collection.find().sort({ "key1" : -1 ,"key2" : 1 }) ? ?這里的1代表升序,-1代表降序

3.其他

  • db.collection.find().limit(5) ? ?控制返回結果數量,如果參數是0,則當作沒有約束,limit()將不起作用
  • db.collection.find().skip(5) ? ?控制返回結果跳過多少數量,如果參數是0,則當作沒有約束,skip()將不起作用,或者說跳過了0條
  • db.collection.find().skip(5).limit(5) ? ?可用來做分頁,跳過5條數據再取5條數據
  • db.collection.find().count(true) ? ?count()返回結果集的條數
  • db.collection.find().skip(5).limit(5).count(true) ? ?在加入skip()和limit()這兩個操作時,要獲得實際返回的結果數,需要一個參數true,否則返回的是符合查詢條件的結果總數

轉載于:https://www.cnblogs.com/lecaf/p/mongodb.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274072.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274072.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274072.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可變參數列表(va_list,va_arg,va_copy,va_start,va_end)

本文轉自:http://blog.csdn.net/costa100/article/details/5787068 va_list arg_ptr&#xff1a;定義一個指向個數可變的參數列表指針&#xff1b;      va_start(arg_ptr, argN)&#xff1a;使參數列表指針arg_ptr指向函數參數列表中的第一個可選參數&#xff0c;說明&…

src與href屬性的區別

src和href之間存在區別&#xff0c;能混淆使用。src用于替換當前元素&#xff0c;href用于在當前文檔和引用資源之間確立聯系。 src是source的縮寫&#xff0c;指向外部資源的位置&#xff0c;指向的內容將會嵌入到文檔中當前標簽所在位置&#xff1b;在請求src資源時會將其指向…

USACO4.12Beef McNuggets(背包+數論)

昨天晚上寫的一題 結果USACO一直掛中 今天交了下 有一點點的數論知識 背包很好想 就是不好確定上界 官方題解&#xff1a; 這是一個背包問題。一般使用動態規劃求解。 一種具體的實現是&#xff1a;用一個線性表儲存所有的節點是否可以相加得到的狀態&#xff0c;然后每次可以…

Java 循環語句中 break,continue,return有什么區別?

break 結束循環&#xff0c;跳出循環體,進行后面的程序;continue 結束本次循環&#xff0c;進行下次循環;return 跳出循環體所在的方法&#xff0c;相當于結束該方法; 例子&#xff1a; public class whiletrueTest{public static void main(String[] args) {heihei();haha();…

Epoll模型詳解

轉自http://blog.163.com/huchengsz126/blog/static/73483745201181824629285/ Linux 2.6內核中提高網絡I/O性能的新方法-epoll I/O多路復用技術在比較多的TCP網絡服務器中有使用&#xff0c;即比較多的用到select函數。 1、為什么select落后 首先&#xff0c;在Linux內核中…

運算放大器單電源應用中的使用齊納二極管偏置方法

運算放大器單電源應用中的偏置方法除了使用大電阻使運放輸出達到電源電壓的一半外&#xff0c;還有使用齊納二極管&#xff08;穩壓管&#xff09;方法也能得到達到應用目的。 下面就推薦幾個齊納二極管&#xff08;分別對應著電源電壓是15V,12V&#xff0c;9V;5V&#xff09; …

Java——demo之仿ATM操作

java.util.Scanner類&#xff0c;這是一個用于掃描輸入文本的新的實用程序。其中nextInt()獲取String型&#xff0c;而next()獲取int、double型。這是一個仿ATM的小程序。 實現條件 1.登陸界面&#xff0c;2.三次登陸機會&#xff0c;登陸成功進入登陸菜單&#xff0c;3&#x…

dpi 、 dip 、分辨率、屏幕尺寸、px、density 關系以及換算

本文轉自&#xff1a;http://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.html 一、基本概念 dip &#xff1a; Density independent pixels &#xff0c;設備無關像素。 dp &#xff1a;就是dip px &#xff1a; 像素 dpi &#xf…

Ninject使用demo

public class HomeController : Controller{public ActionResult Index(){ //核心對象IKernel ninjectKernel new StandardKernel();ninjectKernel.Bind<IValueCaculator>().To<LinqValueCalcalator>(); //方案1&#xff1a;獲取接口實例IV…

Java 集合中關于Iterator 和ListIterator的詳解

1.Iterator Iterator的定義如下&#xff1a;public interface Iterator<E> {}Iterator是一個接口&#xff0c;它是集合的迭代器。集合可以通過Iterator去遍歷集合中的元素。Iterator提供的API接口如下&#xff1a;forEachRemaining(Consumer<? super E> action)&a…

使用xrandr和cvt命令添加自定義的分辨率模式

可以使用xrandr -q命令查看當前支持的分辨率模式: 如果過沒有你想要的分辨率模式,則需要自己創建新的分辨率模式,例如,我想要創建800x750的分辨率模式,步驟如下: 1.使用cvt命令創建新的分辨率: 2.使用xrandr –newmode modeline信息(CVT命令產生的結果)創建新的mode: $xra…

Java List集合

我們先看一下jdk1.9對其的描述&#xff1a;什么是List&#xff0c;也就是一個有序集合(序列)。1.List接口 List集合代表一個有序集合&#xff0c;集合中每個元素都有其對應的順序索引。List集合允許使用重復元素&#xff0c;可以通過索引來訪問指定位置的集合元素。 List接口繼…

winform錯誤提示 :窗口類名無效(Window class name is not valid)

winfrom 程序在 xp 操作系統上報錯提示 窗口類名無效(Window class name is not valid) 解決方法 注釋 Program類 里 這句 Application.EnableVisualStyles(); 解決轉載于:https://www.cnblogs.com/z_lb/p/3288850.html

如何在linux下通過ssh運行X圖形軟件

服務器端&#xff1a;編輯/etc/ssh/sshd_config中的以下內容 啟用AllowTcpForwarding 啟用X11Forwarding 將X11DisplayOffset設定為10. 啟用X11UseLocalhost 客戶機端&#xff1a;編輯/etc/ssh/ssh_config中的以下內容 啟用X11Forwarding 連接時ssh -X或者ssh -Y就可以了…

Java Set集合

Set接口什么是Set&#xff0c;就是不包含重復元素的集合。Set是一種不包括重復元素的Collection。它維持它自己的內部排序&#xff0c;所以隨機訪問沒有任何意義。與List一樣&#xff0c;它同樣允許null的存在但是僅有一個。由于Set接口的特殊性&#xff0c;所有傳入Set集合中的…

linux下制作win7安裝U盤

轉自:http://blog.csdn.net/pipisorry/article/details/41369821 http://blog.csdn.net/pipisorry/article/details/41369821 已裝Linux&#xff0c;再用U盤安裝win7(網絡安裝應該也可以)&#xff0c; 先要在linux里面制作一個win7安裝U盤&#xff08;windows下用ultraiso制…

Java Map集合

Map集合&#xff1a;Map接口Map與List、Set接口不同&#xff0c;它是由一系列鍵值對組成的集合&#xff0c;提供了key到Value的映射。同時它也沒有繼承Collection。在Map中它保證了key與value之間的一一對應關系。也就是說一個key對應一個value&#xff0c;所以它不能存在相同的…

gsettings命令使用簡介

1.gsettings創建項 應用程序可以使用gsettings來保存配置信息&#xff0c;可以通過代碼在程序中進行設置、修改gsettings的已有的項&#xff0c;但是不能通過程序代碼創建新的gsettings項&#xff0c;gsettings的項的在一個叫做schema的規范文件中創建&#xff0c;schema文檔其…

Collection 和 Collections區別

Collection 和 Collections區別&#xff08;1&#xff09;java.util.Collection 是一個集合接口&#xff08;集合類的一個頂級接口&#xff09;。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現。Collection接口的意義是為各種具…

Http狀態碼完整說明

在網站建設的實際應用中&#xff0c;容易出現很多小小的失誤&#xff0c;就像mysql當初優化不到位&#xff0c;影響整體網站的瀏覽效果一樣&#xff0c;其實&#xff0c;網站的常規http狀態碼的表現也是一樣&#xff0c; 一些常見的狀態碼為&#xff1a; 200 - 服務器成功返回網…