標籤: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 驅動基礎