[英]Array validation on a field at collection creation on Mongodb using PHP
使用MongoDB 3.2,PHP 5.6.16和PHPDriver mongod 1.1和“官方” 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中發現的解決方案的一種方法,
對不起,英語不好,如果有的話。
用兩個參數創建一個用戶定義函數。 一個用於傳遞集合名稱,另一個用於傳遞數組。 現在,在函數的定義部分,您可以按照以下代碼檢查數組。
function createMyCollection($collectionName,$array){
if(is_array($array)){
createCollection($collectionName,$array);
}else{
die("Invalid Array");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.