博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB应用记录
阅读量:7048 次
发布时间:2019-06-28

本文共 1793 字,大约阅读时间需要 5 分钟。

  hot3.png

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的信息了。

转载于:https://my.oschina.net/900924/blog/144836

你可能感兴趣的文章
小贝_mysql 触发器使用
查看>>
jstree中json data 的生成
查看>>
Win7 64bit 安装VisualSVN出现报错:Servic 'VisualSVN Server' failed to start.解决的方法...
查看>>
论-多租户技术
查看>>
解析json方式之net.sf.json
查看>>
java中集合格式及json格式的特点和转换
查看>>
Java下用Jackson进行JSON序列化和反序列化(转)
查看>>
input_shape { dim: 1 dim: 3 dim: 224 dim: 224 }
查看>>
15.extjs tabPanel的用法
查看>>
NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息...
查看>>
Redis命令汇总
查看>>
Python shuffle() 函数
查看>>
Linux系列教程(七)——Linux常用命令之帮助和用户管理命令
查看>>
移动端用户设置字体放大导致的问题
查看>>
Greenplum测试部署笔记
查看>>
Swagger2 添加HTTP head参数,解决用户是token信息保留
查看>>
Java动态代理:一个面包店的动态代理帝国
查看>>
DIV中display和visibility属性差别
查看>>
mysql实现开窗函数
查看>>
得到.每天听本书
查看>>