一.获取数量
db.books.count();
db.books.find().count();
db.books.count({'author':'张黎'});
db.books.find({'author':'张黎'}).count();
db.books.count({'money':{'$gt':60,'$lte':100}});
db.books.find({'money':{'$gt':60,'$lte':100}}).count();
对应的php代码
$num = $booksOrm->count();
$num = $booksOrm->find()->count();
$num = $booksOrm->count(array('author'=>'张黎'));
$num = $booksOrm->find(array('author'=>'张黎'))->count();
$num = $booksOrm->count(array('money'=>array('$gt'=>60,'$lte'=>100)));
$num = $booksOrm->find(array('money'=>array('$gt'=>60,'$lte'=>100)))->count();
二.查询单条数据
db.books.findOne();
db.books.findOne({'title':'西游记'});
对应的php代码:
$info = $booksOrm->findOne();
$info = $booksOrm->findOne(array('title'=>'西游记'));
三.自定义字段显示
db.books.find({},{'title':1,'code':1}); //只显示title和code字段,_id默认显示
db.books.find({},{'_id':0,'title':1,'code':1}); //只显示title和code,_id也不显示
db.books.find({'money':{'$gt':60,'$lte':100},'code':{'$gt':150}},{'_id':0,'title':1,'code':1});
对应的php代码:
$info = $booksOrm->find()->fields(array('title'=>1,'code'=>1));
$info = $booksOrm->find()->fields(array('_id'=>0,'title'=>1,'code'=>1));
$data = $booksOrm->find(array('money'=>array('$gt'=>60,'$lte'=>100),'code'=>array('$gt'=>150)))->fields(array('_id'=>0,'title'=>1,'code'=>1));
$info = array();
foreach($data as $bal){
$info[] = $bal;
}
四.分页--limit
db.books.find({},{'_id':0,'money':0,'code':0}).skip(3).limit(2); //跳过第x条,取n条
对应的php代码:
$data = $booksOrm->find()->fields(array('_id'=>0,'money'=>0,'code'=>0))->skip(3)->limit(2);
五.排序--sort -1:desc 1:asc
db.books.find().sort({'money':1}); //根据money进行asc
db.books.find().sort({'money':-1}); //根据money进行desc
db.books.find().sort({'money':-1,'code':1}); //根据money进行desc,code进行asc
对应的php代码:
$data = $booksOrm->find()->sort(array('money'=>1));
$data = $booksOrm->find()->sort(array('money'=>-1));
$data = $booksOrm->find()->sort(array('money'=>1,'code'=>-1));
六.模糊查询--like
db.books.find({'title':/王朝/}); // like '%王朝%'
db.books.find({'title':/^大/}); // like '大%'
db.books.find({'title':/王朝$/}); // like '%王朝%'
对应的php代码:
$param = array("title" => new MongoRegex('/王朝/'));
$param = array("title" => new MongoRegex('/^大/'));
$param = array("title" => new MongoRegex('/朝$/'));
$data = $booksOrm->find($param);
七.$in,$nin
db.books.find({'money':{'$in':[76,94]}});
对应的php代码:
$param = array("money" => array('$in'=>array(76,94)));
$data = $booksOrm->find($param);
八.$or
db.books.find({'$or':[{'money':76},{'money':94}]});
对应的php代码:
$param = array('$or'=>array(array('money'=>76),array('money'=>94)));
$data = $booksOrm->find($param);
九.分组统计--group by
$option = array(
//匹配条件
array(
'$match'=>array(
'code'=>array(
'$gt'=>80,
'$lt'=>110
)
)
),
//统计条件
array(
'$group'=>array(
'_id'=>'$author',
'numcount'=>array(
'$sum'=>'$money'
)
)
)
);
//获取全部数据
$data = $booksOrm->aggregate($option);
$info = array();
foreach($data as $bal){
$info[] = $bal;
}
十.distinct
db.books.distinct('author');
db.books.distinct('author',{'money':{'$gt':76,'$lte':110}});