【发布时间】:2016-02-12 23:56:06
【问题描述】:
在插入具有自定义 _id 值的新文档时,我遇到了一些奇怪的问题。如果我插入一个自定义 _id 为 1020716632230383 的文档,它将作为 1020716632230384 保存在数据库中。由于某种原因,它增加了 1。
这可能是什么原因?
我的查询是:
exports.register = function(req, res){
console.log('ATTEMPT to register a user with id: ' + req.body.userInfo.id);
// prints 1020716632230383 !!!
var query = {'_id': req.body.userInfo.id};
var update = {
'_id': req.body.userInfo.id ,
'name': req.body.userInfo.name
};
var options = {
upsert: true,
setDefaultsOnInsert : true
};
User.findOneAndUpdate(query, update, options).exec(function(err ,doc){
if(!err){
console.log('REGISTERED!: ' , doc);
res.status(200).json({'success': true, 'doc': doc});
}else{
console.log(err);
res.status(200).json({'success': false});
}
});
};
在我的架构中,_id 被定义为一个数字。
_id: {type:Number}
【问题讨论】:
标签: mongodb mongoose mongodb-query