簡體   English   中英

貓鼬findByIdAndUpdate()更新錯誤的條目

[英]Mongoose findByIdAndUpdate() updates the wrong entry

我正在調用以下Mongoose函數:

User.findByIdAndUpdate(
  '76561198015207414', 
  {}, 
  { upsert: true }
);

調用之前,我的user集合為空。 運行該功能后,我的user集合將添加以下文檔:

{
    "_id": 76561198015207410
}

為什么會更新集合中的錯誤條目?

您為User定義的_id可能是數字:

var UserSchema = Schema({
    _id : Number,
    /* more */
});

如果您使用JavaScript並將傳遞給調用的String轉換為findByIdAndUpdate並將其轉換為Number ,那么您將看到未保留精度:

> var x=76561198015207414
> x
76561198015207410

您會看到變量x包含問題中顯示的_id

您需要切換到String或確保數字不超過Number

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM