【发布时间】:2017-11-10 21:52:18
【问题描述】:
我的数据库中有许多文档,我正在应用文档验证。所有这些文档都可能具有嵌入的文档。我可以按照 SQL 非 NULL 检查的方式应用简单的验证(这些实际上是强制执行主键约束),但我想做的是对可选数组和嵌入式文档应用某种条件验证。例如,假设我有一个如下所示的文档:
{
"date": <<insertion date>>,
"name" : <<the portfolio name>>,
"assets" : << amount of money we have to trade with>>
}
显然,我可以在此文档上进行验证,以确保日期名称和资产在插入时都存在。但是,假设我正在管理一个股票投资组合,并且该文档可以有未来的更新以显示一系列股票,如下所示:
{
"date" : <<insertion date>>,
"name" : <<the portfolio name>>,
"assets" : << amount of money we have to trade with>>
"portfolio" : [
{ "stockName" : "IBM",
"pricePaid" : 155.39,
"sharesHeld" : 100
},
{ "stockName" : "Microsoft",
"pricePaid" : 57.22,
"sharesHeld" : 250
}
]
}
是否可以对这个子文档数组应用条件验证?投资组合不存在是有效的,但如果它是数组中的每个文档,则必须包含三个字段“stockName”、“pricePaid”和“sharesHeld”。
【问题讨论】:
标签: mongodb validation