Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 간단한 유효성 검사를 수행하시겠습니까?

<시간/>

MongoDB에서 유효성 검사를 위해 유효성 검사기를 사용합니다. 다음은 MongoDB에서 컬렉션에 대한 유효성 검사를 생성하는 쿼리입니다 -

> db.createCollection( "demo437" , {
...    validator: { $jsonSchema: {
...       bsonType: "object",
...       required: [ "FirstName", "LastName"],
...       properties: {
...          FirstName: {
...             bsonType: "string",
...             description: "This is required" },
...             LastName: {
...                bsonType: "string",
...                description: "This is required" }
...
... }
... }}})
{ "ok" : 1 }

문서로 컬렉션을 만들자 −

> db.demo437.insertOne({"FirstName":"John","LastName":1234});
2020-03-22T17:49:55.590+0530 E QUERY [js] WriteError: Document failed validation :
WriteError({
   "index" : 0,
   "code" : 121,
   "errmsg" : "Document failed validation",
   "op" : {
   "_id" : ObjectId("5e7757ebbbc41e36cc3cae9a"),
   "FirstName" : "John",
   "LastName" : 1234
   }
})
WriteError@src/mongo/shell/bulk_api.js:461:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:841:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:906:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1
>
> db.demo437.insertOne({"FirstName":"John","LastName":"Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7757f7bbc41e36cc3cae9b")
}
> db.demo437.insertOne({"FirstName":9887,"LastName":"Miller"});
2020-03-22T17:50:29.631+0530 E QUERY [js] WriteError: Document failed validation :
WriteError({
   "index" : 0,
   "code" : 121,
   "errmsg" : "Document failed validation",
   "op" : {
      "_id" : ObjectId("5e77580dbbc41e36cc3cae9c"),
      "FirstName" : 9887,
      "LastName" : "Miller"
   }
})
WriteError@src/mongo/shell/bulk_api.js:461:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:841:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:906:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1
>
>
> db.demo437.insertOne({"FirstName":"David","LastName":"Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e775816bbc41e36cc3cae9d")
}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo437.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e7757f7bbc41e36cc3cae9b"), "FirstName" : "John", "LastName" : "Smith" }
{ "_id" : ObjectId("5e775816bbc41e36cc3cae9d"), "FirstName" : "David", "LastName" : "Miller" }