正在验证MongoDB中数组项的类型
我正在使用MongoDB 4.0 我的集合中的文档可以有一个包含整数数组的正在验证MongoDB中数组项的类型,mongodb,validation,bson,Mongodb,Validation,Bson,我正在使用MongoDB 4.0 我的集合中的文档可以有一个包含整数数组的numbers字段。我们可以使用下面的代码验证数字确实是一个数组,但是否可以确保它们是整数 properties: { numbers: { bsonType: 'array' } } 我已经看过了和,但在这两个方面都没有任何说明。一个示例显示了一个用方括号括起来的字段([“double”]),但该类型没有被描述为数组,添加括号似乎没有任何效果。似乎还有另一个属性,items,您可以在其中为数组中的项定
numbers
字段。我们可以使用下面的代码验证数字
确实是一个数组,但是否可以确保它们是整数
properties: {
numbers: {
bsonType: 'array'
}
}
我已经看过了和,但在这两个方面都没有任何说明。一个示例显示了一个用方括号括起来的字段(
[“double”]
),但该类型没有被描述为数组,添加括号似乎没有任何效果。似乎还有另一个属性,items
,您可以在其中为数组中的项定义方案
properties: {
numbers: {
bsonType: 'array'
items: {
bsonType: 'int'
}
}
}
此属性似乎是似乎还有另一个属性,
items
,您可以在其中为数组中的项定义方案
properties: {
numbers: {
bsonType: 'array'
items: {
bsonType: 'int'
}
}
}
此属性似乎您需要在“数组
”后面加一个“”字符,如下所示:
properties: {
numbers: {
bsonType: 'array' ,
items: {
bsonType: 'int'
}
}
}
在“数组”
”之后需要一个“,
”字符,如下所示:
properties: {
numbers: {
bsonType: 'array' ,
items: {
bsonType: 'int'
}
}
}
这真的有效吗?我正在尝试这种语法,除非数组为空(这是有效的),否则文档将不会验证。如果我有[200300]它被宣布无效…是的,它是。但是在使用mongo shell时,必须使用numberprint()显式转换int,因为shell将所有数值默认为double。我讨厌mongo的事情越来越多……这真的管用吗?我正在尝试这种语法,除非数组为空(这是有效的),否则文档将不会验证。如果我有[200300]它被宣布无效…是的,它是。但是在使用mongo shell时,必须使用numberprint()显式转换int,因为shell将所有数值默认为double。我讨厌mongo的东西越来越多,…[“double”]
语法表明可能需要多种类型。[“double”,“string”]
类型允许将double和string作为有效类型。我同意在处理数组类型时这会让人感到困惑。[“double”]
语法表明可能需要多种类型。[“double”,“string”]
类型允许将double和string作为有效类型。我同意在处理数组类型时这会让人困惑。我看不出和你的有什么区别,请避免使用已经提出的解决方案来回答。@Ruli He没有提出解决方案;他说,接受的答案需要在BSON条目之间加一个逗号才能在语法上有效。堆栈溢出的一个怪癖是对评论的信誉要求高于答案。标记为“非答案”,mods会处理它。编辑后会更有意义。Yes我看不出和您的答案有什么区别,请避免使用已经提出的解决方案回答。@Ruli He不是在提出解决方案;他说,接受的答案需要在BSON条目之间加一个逗号才能在语法上有效。堆栈溢出的一个怪癖是对评论的信誉要求高于答案。标记为“不是答案”,mods会处理它。编辑后会更有意义是的