mongodb入門,mongodb

來源:互聯網
上載者:User

mongodb入門,mongodb

上篇文章寫了如何安裝:http://blog.csdn.net/stronglyh/article/details/46805373

這篇來講講mongodb入門

首先看服務有沒有開啟,開啟服務有兩種方式,第一種是使用dos命令:NET START MongoDB   (前提是我們安裝mongodb的時候命名的服務名就是MongoDB),第二種方式是開啟控制台--》管理工具--》服務  然後找到MongoDB這個服務,看其是否開啟狀態。

開啟完畢之後,先進入dos命令對話方塊,然後進入到mongodb安裝目錄的bin檔案夾下

這個時候,我們可能在想會不會有好幾個庫,oracle中是show database,然後mongodb中有所區別,mongodb中的命令是show dbs

下面我們建立一個新的庫,一般我們使用use方法就能建立一個庫了

呵呵,是不是出現了

1:插入

 db.users.insert({name:"hhh",age:26})

2:批量插入

db.users.insert([{name:"tommy"},{name:"xiaoming"}])

3:查詢文檔

db.users.find();

3.1 相等條件

db.users.find({age:26})

3.2 比較條件

大於($gt)、大於等於($gte)、小於($lt)、小於等於($lte)、不等於($ne)、包含於($in)、不包含於($nin)。

比如db.user.find({age:{$lt:30}})

3.3 子檔案

db.mycol.find({"access.level":5});

3.4  數組條件

數組完全符合:

db.inventory.find( { tags: [ 'fruit', 'food', 'citrus' ] } );
單個元素匹配:

db.inventory.find( { tags: 'fruit' } );
特定元素匹配:

db.inventory.find( { 'tags.0' : 'fruit' } );


3.5 複合查詢

查詢inventory集合中type欄位為food並且價格低於95的所有文檔。

db.inventory.find({$and:[{type: "food"},{ price: { $lt: 95 }}]});


inventory集合中檢索數量(qty)大於100或者($or)價格(price)小於9.95的所有資料。

db.inventory.find( {
                     $or: [
                            { qty: { $gt: 100 } },
                            { price: { $lt: 9.95 } }
                           ]
                    } );


3.6 限制條件

limit

db.users.find().limit(3)前三條資料

3.7 想要的結果集

傳統的寫法是結果集現實所有的欄位,如果只想現實其中幾個欄位呢-------------

db.collection.find( 查詢條件,字型條件 )
參數:
欄位條件:JSON對象,格式=>{欄位:值},值等於1時表示需要返回,0時表示不需要返回。

舉例 db.users.find({},{status:1,age:1}


4:更新文檔

db.collection.update(query,update,{upsert:boolean,multi:boolean});

參數:

query:查詢條件,文檔,和find中的查詢條件寫法一致。

update:修改內容,文檔。
upsert(可選):如果值為true,那麼當集合中沒有匹配文檔時,建立文檔。預設false。

multi(可選):如果值為true,那麼將更新全部合格文檔,否則僅更新一個文檔,預設false。

舉例:

修改年齡大於19歲的,讓其狀態為A

db.users.update(

{age:{$gt:19}},

{$set:{status:"A"}})


查詢:歲數大於19的文檔:db.users.find({age:{$gt:19}})

我們查詢到了剛才更新的那句話了


5:單文檔進行操作,命令save:db.collection.save();

db.users.save({name: 'zhangsan', age: 25, sex: true});


6:刪除

比如刪除狀態為A的

db.users.remove({status:"A"})

先查詢一下是否存在

db.users.find({status:"A"})

然後之後刪除語句,執行完之後執行查詢語句,發現已經被刪除


6:遊標

find命令並不直接返回結果,而是返回一個結果集的迭代器,即遊標。

想要擷取資料,我們可以使用next方法來遍曆遊標,如下:

var myCursor = db.inventory.find( { type: "food" } );
var myDocument = myCursor.hasNext() ? myCursor.next() : null;
 
if (myDocument) {
    var myItem = myDocument.item;
    print(tojson(myItem));
}
使用forEach方法也能實現遊標的遍曆,如下:

var myCursor =  db.inventory.find( { type: "food" } );
myCursor.forEach(printjson);


下一篇文章講mongodb進階。敬請關注





著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.