使用PHP在Mongodb上创建集合时对字段进行数组验证

时间:2016-06-10 14:41:22

标签: php mongodb

我使用MongoDB 3.2,PHP 5.6.16和PHPDriver mongod 1.1以及官方的#39; MongoDB PHPLIB

我想用验证器创建一个集合:

createCollection('client',[
'validator' => [
  'total' => ['$type' => 'int'],
  'Appliref' => ['$type'=> 'array'],
],
]);

如果我喜欢呈现,Mongo将检查我的文档包含的插入内容 '总'这是一个Int; 并且' Appliref'其中包含一个数组

(!只有当Appliref包含数组时才会检查它是否为数组:

例如:

insertOne([
  'total'=>55,
  'Appliref'=>array('1224','4447')]; will not be ok
insertOne([
  'total'=>55,
  'Appliref'=>array('1224',array('1111','2222'))]; will be ok )

解释在$type

的文档中

但我的目标当然是验证两者,更具体地说是检查Appliref是否是数组。

我在其他网站上找到了解决方案:

db.createCollection("user" , { validator : { "hoge.0" : {$exists : true}}})

想法是检查数组的第一个元素是否存在;

我无法使用=>在PHP中找到一种方法。我不确定它是否是完美的解决方案

如果有人得到了解决方案(对于PHP使用请:()或者使用我在PHP中找到的解决方案的方法很棒,

抱歉英语不好,如果有的话。

1 个答案:

答案 0 :(得分:0)

  

使用两个参数创建用户定义函数。一个是传球   集合名称和另一个用于传递数组。现在在   定义部分函数可以检查数组如下   代码。

function createMyCollection($collectionName,$array){
    if(is_array($array)){
       createCollection($collectionName,$array);
    }else{
       die("Invalid Array");
    }
}