mongo的insert和save比较
insert仅仅是插入文档到集合中,如果记录不存在则插入,如果记录存在则忽略
save是在文档不存在时插入,存在时则是更新
下面代码不是为了演示insert和save的:
foreach ($menses['page'] as $k => $value) {
if(isset($value['id'])) {
if(isset($value['is_del']) && intval($value['is_del']) === 1) {
//删除操作
$pull_date = array("menses.page"=> array("id" => $value['id']));
$this->update($where,$pull_date,true,'$pull');
} else {
//修改
$set_page['menses.page.$.color'] = isset($value['color'])?intval($value['color']):0;
$set_page['menses.page.$.time'] = strval($value['time']);
if(isset($value['image']) && !empty($value['image'])) {
if($value['image'] == '') {
$set_page['menses.page.$.image'] = '';
} else {
$set_page['menses.page.$.image'] = strval($value['image']);
}
} else {
$set_page['menses.page.$.image'] = '';
}
//$set_page['menses.page.$.image'] = isset($value['image'])?strval($value['image']):'';
$set_page['menses.page.$.status'] = isset($value['status'])?intval($value['status']):0;
$set_page['menses.page.$.timeline'] = time();
$where_aa = array("cuid"=>$cuid,"date"=>$menses['date'],"menses.page.id" => $value['id']);
$update = $set_page;
$this->update($where_aa,$update,true,'$set');
}
} else {
//添加
$add_page['id'] = (string)new MongoId();
$add_page['color'] = intval($value['color']);
$add_page['time'] = strval($value['time']);
if(isset($value['image']) && !empty($value['image'])) {
if($value['image'] == '') {
$add_page['image'] = '';
} else {
$add_page['image'] = strval($value['image']);
}
} else {
$add_page['image'] = '';
}
//$add_page['image'] = isset($value['image'])?strval($value['image']):'';
$add_page['status'] = isset($value['status'])?intval($value['status']):0;
$add_page['timeline'] = time();
$update = array("menses.page"=>$add_page);
$this->update($where,$update,true,'$push',true);
}
}
mongo的insert和save比较的更多相关文章
- mongodb insert()、save()的区别
mongodb 的 insert().save() ,区别主要是:若存在主键,insert() 不做操作,而save() 则更改原来的内容为新内容. 存在数据: { _id : 1, " ...
- laravel insert 、save、update、create区别(总结二)
1.insert:插入数据时,需要维护 created_at 和 updated_at字段, 2.save:无论插入或者更新,会自动维护,无需手动操作 //插入: public function st ...
- 关于python中使用mongodb模块,save和insert的小问题
今天写python脚本的时候发现这样一个问题: import os , string , datetime ,pymongo; conn = pymongo.Connection("127. ...
- Mongo 专题
什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供 ...
- mongo 增删改查
1. use foobar2. show dbs3. show collections4. db.system.indexes.find()5. db.persons.find()6. db.pers ...
- MongoDB - MongoDB CRUD Operations, Insert Documents
MongoDB provides the following methods for inserting documents into a collection: db.collection.inse ...
- mongo基础---增删改查
正文 MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据 ...
- Mongo学习记录
引子 最近做项目利用mongo记录的日志做数据统计.着了非关系型数据库的迷,于是乎买了本<MongoDB实战>学习了一番.记录一下学习笔记,共享之. 准备 我在自己的Linux服务器上装了 ...
- ListView控件的Insert、Edit和Delete功能第三部分(自我总结)
1.刚开始在第一部分显示数据的时候出现如下错误: 修改: @Page 中的EnableEventValidation="false" 2.点击各个按钮没有反应. 修改:为page_ ...
随机推荐
- 在oracle中通过链接服务器(dblink)访问sql server
在oracle中通过链接服务器(dblink)访问sql server 2013-10-16 一. 工作环境: <1> Oracle数据库版本:Oracle 11g 运行环境 :IB ...
- Vue.js学习 Item1 --快速入门
我们以 Vue 数据绑定的快速导览开始.如果你对高级概述更感兴趣,可查看这篇博文. 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.在浏览器新标签页中打开它,跟 ...
- kettle的windows安装
1.首先去官网下载安装包,这个安装包在所有平台上是通用的. 2.kettle是java语言开发的,所以需要配置JAVA_HOME 3.解压kettle的安装包 4.配置环境变量,KETTLE_HOME ...
- zabbix一些高级功能介绍
根据上篇配置的环境,接下来说明在zabbix agent上执行远程命令是如何完成的. 远程命令受到一些限制: (1)在agent执行远程命令必须给zabbix用户定义sudu规则: (2)不支持act ...
- Yii 操作提示框实现
如图: html + css 代码: 这是 YII 模板的写法 欢迎使用Yii <style> div.success{ background: #C5FBBD; border: ...
- 了解Unix进程(2)
1. 每个进程都有一个名字,crusher 可以得到: # process name puts $PROGRAM_NAME 10.downto(1) do | num | $PROGRAM_NAME ...
- BT9034: 仅 IE 和 Opera 支持 HTMLFrameElement 和 HTMLIFrameElement 的 document 属性
标准参考 根据 DOM-2 中的描述,HTMLFrameElement 和 HTMLIFrameElement 都没有 'document' 属性. 关于 HTMLFrameElement 对象的详细 ...
- 学习simple.data之基础篇
simple.data是一个轻量级的.动态的数据访问组件,支持.net4.0. 1.必须条件和依赖性: v4.0 or greater of the .NET framework, or v2.10 ...
- 【Cocoa】 Initializing View Instances Created in Interface Builder
Initializing View Instances Created in Interface Builder View instances that are created in Interfac ...
- WPF Event 在 Command 中的应用初级篇,支持所有Event 展示松耦合设计的全部代码 - 解决TextBoxBase.TextChanged或者TextBox.TextChanged等类似事件绑定问题。
做过WPF开发的人,都知道做MVVM架构,最麻烦的是Event的绑定,因为Event是不能被绑定的,同时现有的条件下,命令是无法替代Event.而在开发过程中无法避免Event事件,这样MVVM的架构 ...