2016-06-10 2 views
0

를 사용은 PHPDriver와 PHP 5.6.16는배열 검증 나는 MongoDB를 3.2를 사용하여 약간의 문제가 생겼어요 PHP

내가 만들려는 1.1과 '공식'MongoDB를 PHPLIB mongod 발리와 모음 : 내가되게 좋아 않을 경우

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

가, 몽고 내 문서는 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

는 사용자가 함수를 정의하고 정의 된 함수에서 createCollection() 함수를 호출 구축 할 수 있습니다.

로 전화하기 전에함수는 먼저 배열을 검사합니다. 마찬가지로 :

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

다음은 개념입니다. 나는 당신에게 개념을 주려고 노력했다. 이제 계속 할 수 있기를 바란다.

관련 문제