MongoDB相关操作
1. 连接MongoDB
<?php
//1.连接到MongoDB
$host = "127.0.0.1";
$port = 27017;
$server = "mongodb://$host:$port";
$mongodb = new MongoClient($server);
echo "<pre>";
var_dump($mongodb);
//2.选择数据库
$db = $client -> hytc;
var_dump($db);
//3.选择数据表
$collection = $db -> user;
var_dump($collection);
注:库、表无需手动创建,选择后自动创建
2. CRUD操作
insert(数据) 插入数据(必是一个数组)
//插入文档(关联数组)
$data = ["name"=>"小明","age"=>10,"hobby"=>"swim"];
$result = $collection -> insert($data);
echo "<pre>";
var_dump($result);
find(查找条件,查找字段) 查询数据
//查询数据(返回的是cursor游标,资源)
$condition = ['name'=>'小明'];
$fields = [
'_id' => false, //不查询id
'name' => true, //查询name
'hobby' => true //查询hobby
];
$result = $collection -> find($condition,$fields);
foreach($result as $key => $value){
echo "<pre>";
var_dump($value);
}
update(查找条件,更新之后的内容=>文档内容) 更新数据
//更新数据
$condition = ['name'=>'小明'];
$new_doc = [
'$set' => ["hobby" => "swim"]
];
$result = $collection -> update($condition,$new_doc);
echo "<pre>";
var_dump($result);
注:
- 若不存在hobby字段,则创建该字段
- 默认更新会进行替换操作,可通过属性修改器进行修改而不是替换
- 若有多条记录符合更新条件,默认只会更新第一个数据
- 若需更新符合更新条件的所有记录,则设置该函数的第三个参数:[“multiple”=>true]
//更新数据
$condition = ['age'=>'20'];
$new_doc = [
'$set' => ["hobby" => "swim"]
];
$result = $collection -> update($condition,$new_doc,['multiple'=>true]);
echo "<pre>";
var_dump($result);
remove(查找条件) 删除数据
//删除数据
$condition = ['name'=>'小明'];
$result = $collection -> remove($condition);
3. MongoDB 属性修改器
- 用来对文档的某个属性进行修改
$set 设置
- 不存在属性则添加, 存在属性则修改
$data = ["name"=>"小红","age"=>12,"hobby"=>"dance"];
$collection -> insert($data);
$result = $collection -> find([],['_id'=>false]);
foreach($result as $key => $value){
echo "<pre>";
var_dump($value);
}
- 修改某个字段、属性的值
$new_doc = [
'$set' => ["hobby" => "swim"]
];
$unset 删除某个属性
$condition = ['name'=>'小明'];
$new_doc = [
'$unset' => ["hobby" => "swim"]
];
$collection -> update($condition,$new_doc);
$inc 递增某个属性
$condition = ['name'=>'小明'];
$new_doc = [
'$inc' => ['age' => 20]
];
$collection -> update($condition,$new_doc);
//原先age=10,现为30
$push 压入元素到数组
- 操作的属性需要是数组
$data = ['name'=>'小刚','age'=>14,'hobby'=>['read','climb']];
$collection -> insert($data);
- 向hobby属性(元素),添加元素
$condition = ['name'=>'小刚'];
$new_doc = [
'$push' => ['hobby' => 'sing']
];
$collection -> update($condition,$new_doc);
$pushAll 同时压入多个元素到数组
$condition = ['name'=>'小刚'];
$new_doc = [
'$push' => ['hobby' => 'sing','hobby' => 'jump']
];
$collection -> update($condition,$new_doc);
$addToSet 添加到集合, 不能添加重复元素
$pull 删除数组中的某一个元素
$pullAll 删除多个元素
$pop 弹出元素.
MongoDB相关操作的更多相关文章
- MongoDB学习笔记(五) MongoDB文件存取操作
由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结 ...
- Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作
2 Mongodb CRUD 操作 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mong ...
- mongodb高级操作及在Java企业级开发中的应用
Java连接mongoDB Java连接MongoDB需要驱动包,个人所用包为mongo-2.10.0.jar.可以在网上下载最新版本. package org.dennisit.mongodb.st ...
- Mongodb相关 (Shell命令 / mongoose)
Mongodb相关 1.创建一个文件夹作为数据库存放的目录 2.打开cmd cd到Mongodb/bin目录去 3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目 ...
- 第12章—使用NoSQL数据库—使用MongoDB+Jpa操作数据库
使用MongoDB+Jpa操作数据库 SpringData还提供了对多种NoSQL数据库的支持,包括MongoDB;neo4j和redis.他不仅支持自动化的repository,还支持基于模板的数据 ...
- MongoDB常用操作整理
Mongodb:是一种NoSQL数据库,NoSQL:Not Only SQLSQL: 数据表->JDBC读取->POJO(VO.PO)->控制层转化为JSON数据->客户端 这 ...
- 从零自学Hadoop(20):HBase数据模型相关操作上
阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- 从零自学Hadoop(21):HBase数据模型相关操作下
阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- 理解CSV文件以及ABAP中的相关操作
在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...
随机推荐
- BootStrap selectpicker后台动态绑定数据
项目使用BootStrap设置select时,不能动态加载,使用以下方法可以解决. //获得全部订单信息(订单ID,订单名称) function GetAllOrders(obj) { $.ajax( ...
- HAproxy simple
下载地址 start install: wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz tar -xf ...
- C# 标准的MD5加密32位
标准的MD5加密32位小写的: public static string GetMD5(string myString) { MD5 md5 = new MD5CryptoServiceProvide ...
- JAVA容器全面总结
1 容器体系图 简图: 详图: 2 基础 2.1 Iterator接口 迭代器. 具有的能力:后向迭代.删除. 2.2 Iterable接口 表示一个类具有迭代 ...
- python3: 字符串和文本(3)
11. 删除字符串中不需要的字符 strip() 方法能用于删除开始或结尾的字符: lstrip() 和 rstrip() 分别从左和从右执行删除操作 >>> s = ' hell ...
- SQL Server之JSON 函数
SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...
- [转]JMX的Hello World
这篇写的很详尽了: http://www.blogjava.net/hengheng123456789/articles/65690.html
- HBase TableExistsException: hbase:namespace
这个报错一般存在于独立安装Zookeeper集群中. 报这个错的操作时这样的, 先停掉了了Hbase formatZK后重启Hbase 启动hbase shell 后HMaster挂掉,看log里就有 ...
- MySQL管理.md
用户管理 创建 举例 mysql> create user test@localhost identified by 'password'; Query OK, 0 rows affected ...
- javascript:typeof与instanceof区别
from:http://www.wxwdesign.cn/article/skills/javascript_typeof_instanceof.htm JavaScript中typeof和insta ...