导航:首页 > 编程语言 > php模糊查询mongodb

php模糊查询mongodb

发布时间:2023-03-05 15:59:52

php中怎么查询mongodb中多维数组里的子数组

比如查询数组:arr[arr2["a","b"],arr3["c","d"]]
一般思路:db.tableName.find("arr[0][1]","b");//查询arr数组第一个元素数组的第二个元素是不是等于"b"
具体你可以贴出你要查询的数据,这一步查询出结果后,就可以写成PHP的方法去查询了。

㈡ 如何用php对mongodb进行模糊查询

$mongo_db->like('name','维达');
你试试看还不行的话楼主可以自己去后盾人看看,还送后盾会员卡哦

㈢ thinkphp 用mysqlmongodb 模型怎么使用

第一步:在你的应用的Model文件下建立一个MonModel

第二步:MonModel的内容如下

<?php
namespaceAdminModel;
useThinkModelMongoModel;

{
publicfunction__construct($name,$tablePrefix,$connection)
{
parent::__construct($name,$tablePrefix,$connection);
$this->trueTableName=$name;//要连接的那个集合(表)控制器里传过来
}
protected$dbName='name';//(要连接的数据库名称)
protected$connection=array(
'db_type'=>'mongo',
'db_user'=>'admin',//用户名(没有留空)
'db_pwd'=>'admin',//密码(没有留空)
'db_host'=>'127.0.0.1',//数据库地址
'db_port'=>'27017',//数据库端口默认27017
);
protected$_idType=self::TYPE_INT;//参考手册
protected$_autoinc=true;//参考手册
/*publicfunctiongetall()
{
return$this->select();
}*/
}


第三步:你就可以在你的控制器里用这个MonModel去操作mongodb了。
如下

<?php
namespaceAdminController;
useAdminModelMonModel;
;
{
publicfunctionindex()
{
$M=newMonModel('movie');//movie是集合名(表名)
diemp($M->select());
}
}

㈣ thinkphp6 版本 mongodb 连表查询 案例

# https://www.cnblogs.com/cangqinglang/p/14858131.html
public function index(){

// 方法1 您可以使用 $toObjectId聚合实现此目的,该聚合仅将字符串ID转换为mongoose objectId
// https://blog.csdn.net/az9996/article/details/110141289
// 多表查询 https://blog.csdn.net/eric_to/article/details/90093806

$pipeline = [
['$addFields'=>['company_id'=>['$toObjectId'=>'$company_id']]],
['$match'=>['$expr'=>['$eq'=>["\$company_id", "$\$company_Id"]]]],
];
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx限公司"]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
"let"=>["company_Id"=>"\$_id" ],
"pipeline"=>$pipeline,
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// 以下 mongodb sql 在 数据库 查询 通过 有 2571 条记录
// db.getCollection("oa_company").aggregate([
// {
// "$lookup": {
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ])
// 以下 mongodb sql 在 数据库 查询 通过 只有 101 条记录
// db.runCommand({
// "aggregate":"oa_company",
// "pipeline":[
// {
// "$lookup":{
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }

// }
// ],
// "explain":false
// })

// 方法2 或者使用$toString聚合 可以通过 2571

// db.getCollection('oa_company').aggregate([
// { "$addFields": { "companyidStr": { "$toString": "$_id" }}},
// { "$lookup": {
// "from": "oa_company_member_pay",
// "localField": "companyidStr",
// "foreignField": "company_id",
// "as": "pay"
// }}
// ])
/*
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx有限公司"]],
['$addFields'=>['companyidStr'=>['$toString'=>'$_id']]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
'localField'=>'companyidStr',
'foreignField'=>'company_id',
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// db.cmd({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

// 下面 执行 不可以 只有 101 条数据
db.runCommand({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

*/

}

阅读全文

与php模糊查询mongodb相关的资料

热点内容
编程珠玑笔记 浏览:279
结束命令行 浏览:268
力学原理pdf 浏览:734
宏定义编译后不变 浏览:402
如何搞免费服务器 浏览:211
神经系统pdf 浏览:670
如何查看服务器上的数据库服务器 浏览:195
压缩机型号v代表什么 浏览:57
旅游类源码 浏览:867
电脑服务器类型怎么设置 浏览:235
pdf炒股 浏览:791
服务器地址缺少端口号什么意思 浏览:535
下载需要解压的小说用哪个软件 浏览:539
广东分布式服务器云主机 浏览:588
服务器忙打不开怎么办 浏览:20
tif压缩软件 浏览:418
程序员那么可爱陆漓上班第1天 浏览:952
macbookair自带什么app 浏览:706
如何关了加密的软件 浏览:587
程序员p2p待遇 浏览:923