MongoDB应用记录
2013-07-16 00:00
363 查看
1、这里简单记录下模糊查询的操作方式:
命令行下:
db.letv_logs.find({"ctime":/uname?/i});
php操作
$query = array("name"=>new MongoRegex("/.*" . $var . ".*/i"));
$db->find($query);
2、Mongodb在PHP中的应用:
Insert:不需要添加数据之前先创建表,Mongodb会在Insert的时候自动创建。
例如我们需要创建一张用户(users)表,包含username, password, phone, age, address.
在执行Insert操作时,Mongogdb会自动生成一个“_id”,并将其保存到Mongo里。_id具有唯一性。
五个字段:username, password, phone, age, address
$params['username'] = 'Mongo';
$params['password'] = 'Mongo';
$params['phone'] = '15210394832';
$params['age'] = 10;
$params['address'] = '北京市';
$db = new Mongo();
$db->users->insert($params);
Update:修改数据
例如我们想要改变_id为51c410c53d289d607100010a的Username为MongoliaDb这里我们需要用到$set修改器
如果直接使用update($params),那么需要原来的所有数据必须存在数据,否则会直接改变原来的数据结果,但如果只想改变Mongo中的某一个值,那需要用到更新修改器,以$set为例
$params['username'] = 'MongoliaDb';
$db->users->update(array('_id'=>new MongoId('51c410c53d289d607100010a')), array('$set'=> $params));
remove:删除
Delete可以利用remove(condition) $db->users->delete(array('_id'=>new MongoId('51c410c53d289d607100010a'));
find()与findOne()查询符合扔条件的全部数据,和单独的一条
3、Mongodb应用之upsert:
在项目过程中,很多时候我们会遇到一种情况:当某条数据已经存在的话,我们就update,但是数据不存在的话,我们就会insert。所以每次遇到这种情况时我们都要反复的去Check一个,然后才能去update或insert。而Mongo在这里为我们提供了一种“upsert”处理方式,它会在更新的时候去检验是update还是insert,从而为我们节省了Check的时间。例如:
我们现在有一篇最新文章需要录入,但是不知道是否已经存在,如果存在就update,不存在就insert。这时我们就会用到了upsert。以PHP操作为实例:
$db->article->update(array('title'=>'xxx'), array('title'=>'xxx', 'content'=>'xxxx',...), true);其中参数true表示是使用upsert模式。如果没有true的参数的话,就会默认更新数据。
4、Mongodb应用之$in(待续)
$in 可以查询一个键的多个值。我们经过看到根据某个字段多个值去取数据,比如说,取某字段值为1,22,40的信息。如果是Mysql的话,我们都知道会用in关键字,
select * from table where id in (1,22,40);但是在Mongo里面呢,同样,也提供了$in的用法,与mysql中in的用法大同小异(以PHP语言为准)。
$db->article->find(array('id'=>array('$in'=>array(1,22,40))));这样就会取出id为1,22,40的信息了。
命令行下:
db.letv_logs.find({"ctime":/uname?/i});
php操作
$query = array("name"=>new MongoRegex("/.*" . $var . ".*/i"));
$db->find($query);
2、Mongodb在PHP中的应用:
Insert:不需要添加数据之前先创建表,Mongodb会在Insert的时候自动创建。
例如我们需要创建一张用户(users)表,包含username, password, phone, age, address.
在执行Insert操作时,Mongogdb会自动生成一个“_id”,并将其保存到Mongo里。_id具有唯一性。
五个字段:username, password, phone, age, address
$params['username'] = 'Mongo';
$params['password'] = 'Mongo';
$params['phone'] = '15210394832';
$params['age'] = 10;
$params['address'] = '北京市';
$db = new Mongo();
$db->users->insert($params);
Update:修改数据
例如我们想要改变_id为51c410c53d289d607100010a的Username为MongoliaDb这里我们需要用到$set修改器
如果直接使用update($params),那么需要原来的所有数据必须存在数据,否则会直接改变原来的数据结果,但如果只想改变Mongo中的某一个值,那需要用到更新修改器,以$set为例
$params['username'] = 'MongoliaDb';
$db->users->update(array('_id'=>new MongoId('51c410c53d289d607100010a')), array('$set'=> $params));
remove:删除
Delete可以利用remove(condition) $db->users->delete(array('_id'=>new MongoId('51c410c53d289d607100010a'));
find()与findOne()查询符合扔条件的全部数据,和单独的一条
3、Mongodb应用之upsert:
在项目过程中,很多时候我们会遇到一种情况:当某条数据已经存在的话,我们就update,但是数据不存在的话,我们就会insert。所以每次遇到这种情况时我们都要反复的去Check一个,然后才能去update或insert。而Mongo在这里为我们提供了一种“upsert”处理方式,它会在更新的时候去检验是update还是insert,从而为我们节省了Check的时间。例如:
我们现在有一篇最新文章需要录入,但是不知道是否已经存在,如果存在就update,不存在就insert。这时我们就会用到了upsert。以PHP操作为实例:
$db->article->update(array('title'=>'xxx'), array('title'=>'xxx', 'content'=>'xxxx',...), true);其中参数true表示是使用upsert模式。如果没有true的参数的话,就会默认更新数据。
4、Mongodb应用之$in(待续)
$in 可以查询一个键的多个值。我们经过看到根据某个字段多个值去取数据,比如说,取某字段值为1,22,40的信息。如果是Mysql的话,我们都知道会用in关键字,
select * from table where id in (1,22,40);但是在Mongo里面呢,同样,也提供了$in的用法,与mysql中in的用法大同小异(以PHP语言为准)。
$db->article->find(array('id'=>array('$in'=>array(1,22,40))));这样就会取出id为1,22,40的信息了。
相关文章推荐
- 记录 Mongodb 复制集模式重启动multiple_occurrences的问题
- MongoDB的学习与应用一:安装并简单测试MongoDB
- C# Sqlite 应用记录
- 多路广播应用----APP搜索网关调试过程记录
- 机器学习_的应用网站记录01_可以上色的网站
- 记录一次Linux下应用句柄泄露问题
- 记录一下Android两种实现双击退出应用的方式
- 学习记录之mongodb
- 如何记录应用的接口访问信息(调用次数,最长时间、最短时间、平均时间等等)
- MongoDB学习记录:入门(一)——五叶草
- 新浪微博APP开发应用示例之获取指定微博账户的微博内容记录
- MongoDB 脚本获取update操作的影响记录数
- java 使用MongoDB作为数据库三个不同阶段的操作记录
- Mongodb中修改一条记录
- Mongodb源码分析--插入记录及索引B树构建
- Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建
- MongoDB学习(四)——MongoDB修改记录
- 安装MongoDB部分记录
- 常见资源记录类型及应用示例