[英]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.