我使用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中找到的解决方案的方法很棒,
抱歉英语不好,如果有的话。
答案 0 :(得分:0)
使用两个参数创建用户定义函数。一个是传球 集合名称和另一个用于传递数组。现在在 定义部分函数可以检查数组如下 代码。
function createMyCollection($collectionName,$array){
if(is_array($array)){
createCollection($collectionName,$array);
}else{
die("Invalid Array");
}
}