当前位置:数据库 > mongodb >>

MongoDB应用记录

MongoDB应用记录
 
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的信息了。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,