2017-12-20 6 views
0

다소 구체적인 사례가 있습니다. mongoose/mongo 및 사용자 객체 사용

한 번의 호출로 사용자를 찾고 업데이트하고 싶습니다.

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

'username'의 철자가 잘못되었습니다. 그러나 mongo는 첫 번째 필드 (이름)를 업데이트했으며 두 번째 필드에 대해서는 아무런 오류도주지 않습니다.

하나 이상의 쿼리를 사용하지 않고 $ 집합에서 전달하는 키의 유효성을 검사하려면 어떻게해야합니까? MongoDB를 여기에서 제안 무엇

답변

0

schema validation라고 :

을 특정 경우에 당신이 있는지 확인하려면 다음 명령을 실행할 수있는 필드가 누군가에 의해 추가 할 수 있습니다 추가 ("잘못된 없습니다") :

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

그 외에도 MongoDB는 기본적으로 스키마가있는 문서 데이터베이스이므로 아무리 생각해도 지나치지 않습니다. 따라서 문서를 만들 때이 필드를 만들지 못하게 될 것입니다 ...