0
所以,首先我想借口,如果我的問題會很愚蠢,我在node.js/mongodb/etc中的經驗很低。 我有我的證件的下一個架構在MongoDB中:MongoDB和Mongoose的奇怪行爲
var schema = new mg.Schema({
token: { type: String, required: true },
lastLog: { type: Date, default: Date.now() }
});
var User = mg.model('users', schema);
我試圖找到提交給美國令牌的所有文件等於托克,如果不能找到任何文件 - 創建它,或者如果有文件 - 更新它的lastLog字段。
User.find({ token: tok }, function (err, docs) {
if (err) util.error('error: ', err);
else {
if (docs && docs.length == 0) {
var u = new User({ token: tok });
u.save();
}
else User.update({ token: tok }, { $set: { lastLog: Date.now() } });
}
});
但是,我得到奇怪的錯誤(對我來說)在行:
u.save();
「錯誤:參數傳遞中必須是12個字節的單一字符串或24個十六進制字符的字符串,在新的ObjectID。「
我不明白爲什麼它出現在這裏,'因特網中的所有例子都沒有人有同樣的錯誤。 感謝您的回答!
看到http://mongoosejs.com/docs/api.html#model_Model.findOneAndUpdate – generalhenry
該錯誤消息沒有任何意義,除非你有一個ObjectID字段在用戶模式中,你不顯示。 – JohnnyHK