在 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" }

更新于: 2020-04-06

203 次浏览

开始您的职业

通过完成课程获得认证

开始
广告