MongoDB 的 Nodejs 驅動基礎

來源:互聯網
上載者:User

標籤:country   nbsp   class   mic   複雜   local   第一個   insert   remove   

在學著寫mongodb,用的nodejs。這裡我把坑先記錄好,以後可以慢慢找。這篇文章也慢慢更,為了篇幅簡潔,全部略去對錯誤的處理。

基礎操作:

1.增

 1 var mongo = require(‘mongodb‘).MongoClient 2 var name = { 3     city: ‘Wuhan‘, 4     country: ‘China‘ 5 } 6 mongo.connect(‘mongodb://localhost:27017/test‘, function(err, db) { 7     var collection = db.collection(‘docs‘) 8     collection.insert(name, function(err, data) { 9         console.log(JSON.stringify(name))10         db.close()11     })    12 })

插入很簡單,inset即可。但是注意回呼函數的第二個參數:data,並不是我們插入的資料,而是被包裹了的。這個例子中,我把data的屬性名稱和值都列印出來,是這麼個對象:

{    result: {        ok: 1,        n: 1    },    ops: [{        city: ‘Wuhan‘,        country: ‘China‘,        _id: 58 c3f78ea3104d15f8125564    }],    insertedCount: 1,    insertedIds: [58 c3f78ea3104d15f8125564]}

可以看出返回了插入後的各種資訊,被插入的文檔被ops包裹,並且是個數組。如果單個插入的話就是在數組第一個元素。

 

2.刪

刪除也是比較容易的,不過加了個查詢的過程。上代碼:

 

1 var mongo = require(‘mongodb‘).MongoClient2 mongo.connect(‘mongodb://localhost:27017/test‘, function(err, db) {3     var collection = db.collection(‘doc‘)4     collection.remove({5         city: ‘Wuhan‘6     }, function(err, data) {7         db.close()8     })9 })

 

使用remove,第一個參數是刪除的條件,我們在這裡刪除具有city為Wuhan的條目。

3.查

具有刪的經驗的話,查也是容易的。

 

var mongo = require(‘mongodb‘).MongoClientmongo.connect(‘mongodb://localhost:27017/test‘, function(err, db) {    var collection = db.collection(‘doc‘)    collection.find({        "age": {            "$gt": 30        }    }, {        name: 1,        age: 1,        _id: 0    }).toArray(function(err, doc) {        db.close()    })})

 

我們這裡使用了條件尋找,第一個參數是尋找出age大於30的條目,第二個是只返回name和age,不返回_id。第三個是回呼函數,傳入的第二參數是尋找到的對象,以數組排列。如果沒找到就返回空數組,找到幾個條目返回幾條。

4.改

update操作稍難。比較複雜。

 

var mongo = require(‘mongodb‘).MongoClientmongo.connect(‘mongodb://localhost:27017/test‘ , function(err, db) {    var collection = db.collection(‘doc‘)    collection.update({        city: ‘Wuhan‘‘    }, {        $set: {            province: ‘Hubei‘        }    }, function(err, data) {        db.close()    })})

 

這是最簡單的操作,先找出city為Wuhan的條目,然後將這些條目添加province為Hubei的索引值對。

5.數組操作

暫時只用到了$push方法,肯定會越用越多,跟update方法類似,不過不用$set。

 

var mongo = require(‘mongodb‘).MongoClientmongo.connect(‘mongodb://localhost:27017/test‘, function(err, db) {        var collection = db.collection(‘question‘)        collection.update({            province: ‘Hubei‘        }, {            $push: {                cities: ‘Huangshi‘            }        }, function(err, data) {            db.close()        })    })

 

這段可以將原本為

1 {2     province: ‘Hubei‘,3     cities: [‘Wuhan‘]4 }

的條目增加一個屬性,變為

1 {2     province: ‘Hubei‘,3     cities: [‘Wuhan‘, ‘Huangshi‘]4 }

這就是push操作。

 

MongoDB 的 Nodejs 驅動基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.