最近在mongoose上卡了不少時間,所以解決之後來寫篇文章記錄一下。
卡的這個指令是$inc , 我是要拿來做counter使用的,看了MongoDB>的說明感覺應該是很簡單的,但是搬到mongoose上就感覺鬼打牆一樣,試了好久才知道怎麼弄,下面就是我的sample code.
要注意的地方有兩個,一個是MODEL.update,一個是options要有{ upsert: true },這樣才能在沒有那筆資料時自動insert進去。
大概就是這樣,對node.js還有這些鬼套件都還很不熟,習慣中。
參考資料:
MongoDB $inc
Mongoose Model.update
卡的這個指令是$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