Monday, October 14, 2013

[node.js] mongodb $inc update using mongoose example

最近在mongoose上卡了不少時間,所以解決之後來寫篇文章記錄一下。

卡的這個指令是$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