如何将 Mongodb 查询转换为 Cakephp 兼容
How to convert Mongodb query to Cakephp compatible
如何将mongodb命令转换成cakephp脚本?
我写了这个命令:
db.citytable.find({
"city": "del%"
}, {
"cityname": 1
});
我想在 Cakephp 中转换它。 like
不适用于 Mongodb。
我在 MongoDB.
中使用 Cakephp
编辑
public function load_city() {
$this - > layout = false;
$city_list = array();
$this - > autoRender = false;
if ($this - > request - > is('ajax')) {
$city_term = strtoupper($this - > request - > query('term'));
$mydb = new MongoClient();
$params = array(
'conditions' = > array(
'OR' = > array(
'local_area' = > new MongoRegex("/$city_term/i"),
'city_name' = > new MongoRegex("/$city_term/i"), ), ), );
$results = $this - > Managelist - > find('all', $params);
$this - > set(compact('results'));
foreach($results as $result) {
$city_list[] = $result['Managelist']['local_area'].",".$result['Managelist']['city_name'];
array_unshift($city_list, $result['Managelist']['city_name']);
}
echo json_encode(array_unique($city_list));
exit;
}
}
我正在通过 jquery 自动完成功能调用 load_city()
。
你可以这样做,
$m = new MongoClient();
$collection = $m->selectCollection($this->dbName, 'citytable');
$string="del";
$regexObj = new MongoRegex("/$string/i");
$where = array("city" => $regexObj);
$resultset = $collection->find($where);
$resultData = array();
while ($resultset->hasNext()) {
$clientObj = $resultset->getNext();
$resultData[] = $clientObj;
}
var_dump($resultData);
对于 Or 子句,请使用以下代码,
$m = new MongoClient();
$collection = $m->selectCollection($this->dbName, 'citytable');
$resultset = $collection->find(array('$or' => array(
array("field1" => "test"),
array("field2" => "data")
)));
如何将mongodb命令转换成cakephp脚本?
我写了这个命令:
db.citytable.find({
"city": "del%"
}, {
"cityname": 1
});
我想在 Cakephp 中转换它。 like
不适用于 Mongodb。
我在 MongoDB.
编辑
public function load_city() {
$this - > layout = false;
$city_list = array();
$this - > autoRender = false;
if ($this - > request - > is('ajax')) {
$city_term = strtoupper($this - > request - > query('term'));
$mydb = new MongoClient();
$params = array(
'conditions' = > array(
'OR' = > array(
'local_area' = > new MongoRegex("/$city_term/i"),
'city_name' = > new MongoRegex("/$city_term/i"), ), ), );
$results = $this - > Managelist - > find('all', $params);
$this - > set(compact('results'));
foreach($results as $result) {
$city_list[] = $result['Managelist']['local_area'].",".$result['Managelist']['city_name'];
array_unshift($city_list, $result['Managelist']['city_name']);
}
echo json_encode(array_unique($city_list));
exit;
}
}
我正在通过 jquery 自动完成功能调用 load_city()
。
你可以这样做,
$m = new MongoClient();
$collection = $m->selectCollection($this->dbName, 'citytable');
$string="del";
$regexObj = new MongoRegex("/$string/i");
$where = array("city" => $regexObj);
$resultset = $collection->find($where);
$resultData = array();
while ($resultset->hasNext()) {
$clientObj = $resultset->getNext();
$resultData[] = $clientObj;
}
var_dump($resultData);
对于 Or 子句,请使用以下代码,
$m = new MongoClient();
$collection = $m->selectCollection($this->dbName, 'citytable');
$resultset = $collection->find(array('$or' => array(
array("field1" => "test"),
array("field2" => "data")
)));