MongoDB应用记录
为什么80%的码农都做不了架构师?>>>
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
MongoDB应用记录相关推荐
- mongodb 安装记录 2017年11月21日
mongodb 安装记录 问题 – 1 install window server 失败 [ 2017年11月21日 ] – 使用命令为: mongod --logpath "D:\Mong ...
- Linux下操作MongoDB命令记录
Linux下操作MongoDB命令记录 1.进入到MongoDB的目录下 cd /usr/local/mongodb/mongodb-linux-x86_64/bin 2.在bin目录下启动服务 ./ ...
- MongoDB笔记记录(雷哥课堂)–基本命令
MongoDB笔记记录(雷哥课堂)–基本命令 3 常用命令 3.1 数据库操作 3.1.1 选择和创建数据库 use 数据库名称 如果数据库不存在就自动创建,如果存在则选择该数据库 以下数据库名是保留 ...
- MongoDB 安装记录
之前使用一直没记录,防再次掉坑,记录下 echo 开始 D: cd D:\Program Files\MongoDB\Server\3.2\binmongod --install --serviceN ...
- MongoDB学习记录:入门(一)——五叶草
预热看我之前的文章Node学习记录: mongodb 这个系列旨在系统的学习Mongodb 部分图片来自慕课网mongodb入门截图 学习目标 MongoDB官网:https://www.mongod ...
- mongodb如何记录慢查询
MongoDB支持对DB的请求进行profiling,目前支持3种级别的profiling. 0: 不开启profiling 1: 将处理时间超过某个阈值(默认100ms)的请求都记录到DB下的sys ...
- MongoDB学习记录
文章目录 基本 CURD 增删改查 insert 更新 覆盖更新 局部修改 自增 `inc` 更新多条 删表 分页 排序 正则表达式查询 比较查询 条件查询 `and` 和 `or` 索引 1. 单字 ...
- MongoDB 学习记录
这里写目录标题 MongoDB 基础 什么是MongoDB ? MongoDB基本概念 MongoDB 应用场景 MongoDB 特性及优势 MongoDB 安装 cmd命令增删改查 索引 索引命令 ...
- MongoDB笔记记录(雷哥课堂)--mongodb介绍
1 MongoDB介绍 1.1 应用场景 传统的关系型数据库(如MySQL),在应对当下互联网产品的某些需求面前,显得力不从心 数据库高写入负载需求 对海量数据的高效率存储和读取 对数据库的高扩展性的 ...
- MongoDB笔记记录(雷哥课堂)–索引
4 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文档并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时, ...
最新文章
- java兩個矩陣相乘_Day12 練習java-矩陣乘法
- Spark集群搭建中的问题
- 百度希壤元宇宙平台上线首个汽车数字展厅 领克探索汽车营销新方式
- ip复原Java,力扣:复原IP地址
- android麻将小项目1:第一天的一些收获
- java怎么获取该项目系统的参数_Java 获取系统参数
- C语言 | 结构体数组
- linux进程增删改查,iptables的增删改查
- python线程等待_python3 中 Event.wait 多线程等待
- MyBatis学习总结(27)——Mybatis-Plus使用小技巧
- 两个有序链表序列的合并_leetcode链表之合并两个排序的链表
- 从下单到享用,美团外卖背后的分布式架构设计
- unity如何往下挖地形_Unity 地形
- Hikvision (海康威视) 摄像机码率上限设置
- 淘宝/天猫API:upload_img-上传图片到淘宝
- 深圳的住房公积金的那些事儿~(缴纳标准,用处用法)
- 简论H.266与H.265、AV1、H.264对比
- 根下有长长的白色根须
- C++多继承中的二义性问题
- ApacheCN 公众号文章汇总 2019.9