Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose findByIdAndUpdate()更新了错误的条目_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript Mongoose findByIdAndUpdate()更新了错误的条目

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

我正在调用以下Mongoose函数:

User.findByIdAndUpdate(
  '76561198015207414', 
  {}, 
  { upsert: true }
);
调用此函数之前,我的
用户
集合为空。运行该功能后,my
user
集合将添加以下文档:

{
    "_id": 76561198015207410
}

为什么会更新集合中的错误条目?

您为
用户定义的
\u id
可能是一个数字:

var UserSchema = Schema({
    _id : Number,
    /* more */
});
如果使用JavaScript并将传递给调用的
字符串
转换为
findbyiandupdate
,并将其转换为
数字
,您将看到精度没有保留:

> var x=76561198015207414
> x
76561198015207410
您将看到变量
x
包含您在问题中显示的
\u id

您需要切换到
字符串
s或确保数字不超过
数字