所以,首先我想原谅如果我的问题是愚蠢的,我在node.js / mongodb /等方面的经验很少。 我在mongoDB中有下一个文档模式:
var schema = new mg.Schema({
token: { type: String, required: true },
lastLog: { type: Date, default: Date.now() }
});
var User = mg.model('users', schema);
我试图找到所有带有令牌字段的文件等于tok,如果找不到任何文件 - 创建它,或者如果有文件 - 更新它的字段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();
"错误:在新的ObjectID处传入的参数必须是12个字节的单个字符串或24个十六进制字符的字符串。"
我无法理解为什么会出现在这里,因为在互联网上的所有示例中都没有人有同样的错误。 谢谢你的回答!
答案 0 :(得分:0)
尝试如下;
var u = new User();
u.token = tok;
u.save(function(err) {
if (err) handleError(err);
}