簡體   English   中英

如何使用MongoDB驗證$ set'keys'?

[英]How to validate $set 'keys' with MongoDB?

我有一個相當具體的案例:使用mongoose / mongo和用戶對象

我想在一個電話中查找和更新用戶。

 DB.collection('users').findOneAndUpdate({localId: id} ,{ "$set": { "name": "lla", "usnme": "As"} } ,callback);

請注意,“用戶名”的拼寫錯誤。 但是mongo更新了第一個字段(名稱),並且沒有給出關於第二個字段的任何錯誤。

如何在不進行多個查詢的情況下驗證在$ set中傳遞的鍵?

MongoDB在這里建議的稱為架構驗證

在您的特定情況下,您可以運行以下命令以確保任何人都不能添加其他(“不正確”)字段:

db.runCommand({ "collMod": "users", "validator": {
  $jsonSchema: {
    additionalProperties: false,
    properties: {
      "_id": {
         bsonType: "objectId"
      },
      "name": {
         bsonType: "string"
      },
      "username": {
        bsonType: "string"
      }
    }
  }
}})

除此之外,我真的無法想到任何解決方案,因為MongoDB是一個文檔數據庫,默認情況下是無模式的,因此不會阻止您創建要告訴其創建的字段...

暫無
暫無

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

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