卡的這個指令是$inc , 我是要拿來做counter使用的,看了MongoDB>的說明感覺應該是很簡單的,但是搬到mongoose上就感覺鬼打牆一樣,試了好久才知道怎麼弄,下面就是我的sample code.
'use strict';
var mongoose = require('mongoose');
var conn = mongoose.createConnection('mongodb://127.0.0.1:27017/CounterTest');
var CounterSchema = new mongoose.Schema({
itemId : String,
like : Number,
share : Number,
comment : Number
});
var Counter = conn.model('Counter', CounterSchema);
Counter.update({ itemId : 'test'}, { $inc: { like : 1 }},{ upsert: true }, function(err){
if(err){
console.log('update failed');
process.exit(1);
}
else{
console.log('update success');
process.exit(0);
}
});要注意的地方有兩個,一個是MODEL.update,一個是options要有{ upsert: true },這樣才能在沒有那筆資料時自動insert進去。
大概就是這樣,對node.js還有這些鬼套件都還很不熟,習慣中。
參考資料:
MongoDB $inc
Mongoose Model.update
No comments:
Post a Comment