MongoDB 3.2文件验证匹配“;空";或;“字符串”;类型

MongoDB 3.2文件验证匹配“;空";或;“字符串”;类型,mongodb,validation,nosql,Mongodb,Validation,Nosql,我不熟悉MongoDB noSQL数据库,也不熟悉文档验证 我想为集合指定字段可以是“null”BSON类型或“date”BSON类型 我尝试了以下格式: db.createCollection("users",{ validator: { update_at: {$or:[{$type:"null"},{$type:"date"}]} } }) MongoDB给我一个错误消息:未知运算符$or 我还尝试为集合指定一个字段不存在,或者该字段的类型为“日期”: M

我不熟悉MongoDB noSQL数据库,也不熟悉文档验证

我想为集合指定字段可以是“null”BSON类型或“date”BSON类型

我尝试了以下格式:

db.createCollection("users",{

   validator: 
   {
    update_at:  {$or:[{$type:"null"},{$type:"date"}]}
   }
})
MongoDB给我一个错误消息:未知运算符$or

我还尝试为集合指定一个字段不存在,或者该字段的类型为“日期”:

MongoDB给我相同的errmsg:unknown operator$or

我可以通过文档验证来实现这个结果吗?
谢谢大家。

试试这样的东西。你的语法有点错误

db.createCollection("users",{
   validator: 
   {$or:[{update_at:{$type:"null"}},{update_at:{$type:"date"}}]}
})


db.createCollection("users",{
  validator: 
  {$or:[{update_at:{$type:"date"}},{update_at:{$exists:false}}]}
})

试试这样的。你的语法有点错误

db.createCollection("users",{
   validator: 
   {$or:[{update_at:{$type:"null"}},{update_at:{$type:"date"}}]}
})


db.createCollection("users",{
  validator: 
  {$or:[{update_at:{$type:"date"}},{update_at:{$exists:false}}]}
})

第二种说法似乎对我不起作用。它检查“exists”运算符,但在第二种情况下不检查“date”类型。第二种语句似乎不适合我。它检查“exists”操作符,但在第二种情况下不检查“date”类型。