Javascript Mongoose findByIdAndUpdate()更新了错误的条目
我正在调用以下Mongoose函数:Javascript Mongoose findByIdAndUpdate()更新了错误的条目,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在调用以下Mongoose函数: User.findByIdAndUpdate( '76561198015207414', {}, { upsert: true } ); 调用此函数之前,我的用户集合为空。运行该功能后,myuser集合将添加以下文档: { "_id": 76561198015207410 } 为什么会更新集合中的错误条目?您为用户定义的\u id可能是一个数字: var UserSchema = Schema({ _id : Number
User.findByIdAndUpdate(
'76561198015207414',
{},
{ upsert: true }
);
调用此函数之前,我的用户
集合为空。运行该功能后,myuser
集合将添加以下文档:
{
"_id": 76561198015207410
}
为什么会更新集合中的错误条目?您为
用户定义的\u id
可能是一个数字:
var UserSchema = Schema({
_id : Number,
/* more */
});
如果使用JavaScript并将传递给调用的字符串
转换为findbyiandupdate
,并将其转换为数字
,您将看到精度没有保留:
> var x=76561198015207414
> x
76561198015207410
您将看到变量x
包含您在问题中显示的\u id
您需要切换到字符串
s或确保数字不超过数字