gpt4 book ai didi

mongodb - 如何使用 mongodb 验证器验证对象数组?

转载 作者:可可西里 更新时间:2023-11-01 10:41:42 25 4
gpt4 key购买 nike

我一直在尝试使用 MongoDB 提供的验证器来验证我的数据,但我遇到了一个问题。这是我插入的一个简单的用户文档。

{
"name" : "foo",
"surname" : "bar",
"books" : [
{
"name" : "ABC",
"no" : 19
},
{
"name" : "DEF",
"no" : 64
},
{
"name" : "GHI",
"no" : 245
}
]
}

现在,这是已应用于用户集合的验证器。但这现在适用于我与文档一起插入的书籍数组。我想检查对象内的元素,它们是 books 数组的成员。对象的架构不会改变。

db.runCommand({
collMod: "users",
validator: {
$or : [
{ "name" : { $type : "string" }},
{ "surname" : { $type : "string" }},
{ "books.name" : { $type : "string" }},
{ "books.no" : { $type : "number" }}
],
validationLevel: "strict"
});

我知道这个验证器是针对成员对象而不是数组的,但是我该如何验证这样的对象呢?

最佳答案

很久没问这个问题了。
无论如何,如果有任何人通过这个。

对于 MongoDB 3.6 和更高版本,这可以使用验证器来实现。


db.createCollection("users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name","surname","books"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
surname: {
bsonType: "string",
description: "must be a string and is required"
},
books: {
bsonType: [ "array" ],
items: {
bsonType: "object",
required:["name","no"],
properties:{
name:{
bsonType: "string",
description: "must be a string and is required"
},
no:{
bsonType: "number",
description: "must be a number and is required"
}
}
},
description: "must be a array of objects containing name and no"
}
}
}
}
})

这个可以满足您的所有要求。
有关更多信息,请参阅此 link

关于mongodb - 如何使用 mongodb 验证器验证对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com