前面说到了mongodb安装,配置,集群,以及PHP的插入与更新等,请参考:。 下面说一下,mongodb select的常用操作
测试数据:
1、取表条数
db.books.find().count();
4
db.books.count({auther: "李白" });
2
db.books.find({money:{$gt:40,$lte:60}}).count();
1
db.books.count({money:{$gt:40,$lte:60}});
1
提示:$gt为大于、$gte为大于等于、$lt为小于、$lte为小于等于、$ne为不等于、$exists不存在、$in指定范围、$nin指定不在某范围
2、取单条数据
db.books.findOne({auther: "李白" });
{
"_id" : 3,
"title" : "朝发白帝城",
"auther" : "李白",
"money" : 30,
"code" : 30
}
3、find snapshot 游标
4、自定义列显示
db.books.find({},{"title":1}); //只显示title列
{ "_id" : 1,"title" : "红楼梦" }
{ "_id" : 2,"title" : "围城" }
{ "_id" : 3,"title" : "朝发白帝城" }
{ "_id" : 4,"title" : "将近酒" }
/*
money在60到100之间,typecolumn和money二列必须存在
*/
db.books.find({money:{$gt:60,$lte:100}},{"typeColumn":1,"money":1});
{ "_id" : 1,"money" : 80 }
{ "_id" : 4,"money" : 90 }
$result = $collection->find()->fields(array("title"=>true)); //只显示title列
/*
money在60到100之间,typecolumn和money二列必须存在
*/
$where=array('typeColumn'=>array('$exists'=>true),'money'=>array('$exists'=>true,'$gte'=>60,'$lte'=>100));
$result = $collection->find($where);
5、分页
这根MysqL,limit,offset有点类似,PHP代码如下:
6、排序
7、模糊查询
db.books.find({"auther":/^李/}); //like 'str%' 糊查询集合中的数据
{ "_id" : 3,"code" : 40 }
db.books.find({"auther":/书$/}); //like '%str' 糊查询集合中的数据
{ "_id" : 2,"code" : 20 }
db.books.find( { "title": { $regex: '城',$options: 'i' } } ); //like '%str%' 糊查询集合中的数据
{ "_id" : 2,"code" : 30 }
$param = array("auther" => new MongoRegex('/^李/'));
$result = $collection->find($param);
$param = array("auther" => new MongoRegex('/书$/'));
$result = $collection->find($param);
8、$in和$nin
db.books.find( { auther: { $in: [ /^李/,/^钱/ ] } } ); //查找以李,钱开头的数据
{ "_id" : 2,"code" : 40 }
$param = array("auther" => array('$in'=>array(new MongoRegex('/^李/'),new MongoRegex('/^钱/'))));
$result = $collection->find($param);
foreach ($result as $id=>$value) {
var_dump($value);
}
9、$or
10、distinct
db.books.distinct( 'auther',{ money: { $gt: 60 } });
[ "曹雪芹","李白" ]
$where = array("money" => array('$gte' => 60));
$result = $curDB->command(array("distinct" => "books","key" => "auther","query" => $where));
foreach ($result as $id=>$value) {
var_dump($value);
}
先写到这儿,上面只是SELECT的一些常用操作,接下来,还会写一点。