<?php

include "config/config.inc.php";
$host = $config['host'];
$port = $config['port'];

$m = new MongoClient("mongodb://{$host}:{$port}");
$db = $m->demo;
$table = $db->users;

//insert 插入

$arr = array('user_name' => 'test2', 'salary' => 100000);
$table->insert($arr);

//findOne 获取一条数据
$data = $table->findOne();

//查询条件

$where = array('_id' => new MongoId('51fcca7bb1b6650817007f5c'));

//set 修改节点

$table->update($where , array('$set' => array('performance' => array( array('class1' => 10, 'class2' => 99, 'class3' => 98) ))));

for($i=1; $i<=100; $i++){
  $arr = array('class1' => 100, 'class2' => 100, 'class3' => 100);

  //push 往节点添加数据,不判断值是否存在
  $table->update($where , array('$push' => array('performance' => $arr)));

  //addToSet 往节点添加数据,存在相同的值则不添加
  $table->update($where , array('$addToSet' => array('performance' => array('$each' => array($arr)))));
}

//find 获取所有数据

$result = $table->find($where);

//获取游标数据,并转换为数组

$data = iterator_to_array($result);
foreach($data as $row){
  echo (string)$row['_id'] . ' ' . $row['user_name'];

  if(!empty($row['performance'])){
    $performance = $row['performance'];

    foreach($performance as $key => $val){
    echo ' ' . $key . ' = ' . $val . ' ';
  }
}
echo '</br>';
}

//游标取值

while($result->hasNext()){
  $row = $result->getNext();
  echo (string)$row['_id'] . ' ' . $row['user_name'];

  if(!empty($row['performance'])){
    $performance = $row['performance'];

    foreach($performance as $key => $val){
      echo ' ' . $key . ' = ' . $val . ' ';
    }
  }
  echo '</br>';
 }

// slice 对子文档分页
$result = $table->findOne($where, array('performance' => array( '$slice' => array(2, 3) ) ));

var_dump($result);

PHP Mongodb 基本操作的更多相关文章

  1. MongoDB 基本操作和聚合操作

    一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL  MongoDB  所有记录  SELECT * FROM users;  db ...

  2. 【MongoDB详细使用教程】二、MongoDB基本操作

    目录 数据类型 数据库操作 集合操作 数据操作 增 查 改 修改整行 修改指定字段的值 删 数据类型 MongoDB常见类型 说明 Object ID 文档ID String 字符串,最常用,必须是有 ...

  3. MongoDB【第三篇】MongoDB基本操作

    MongoDB的基本操作包括文档的创建.删除.和更新 文档插入 1.插入 #查看当前都有哪些数据库 > show dbs; local 0.000GB tim 0.000GB #使用 tim数据 ...

  4. mongodb基本操作的学习

    1.基本操作: 如何安装?创建存放数据的文件夹 robomongo: 图形化管理工具 create -->save -->connect 创建数据库:use Database_name 检 ...

  5. 30分钟让你了解MongoDB基本操作

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  6. mongodb基本操作及存储图片显示方案

    先介绍下mongodb的基本操作及使用 第一部:开启安全性验证 如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查, ...

  7. 30分钟让你了解MongoDB基本操作(转)

    今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...

  8. MongoDB基本操作(包括插入、修改、子节点排序等)

    一.基本操作 1.新增文章 db.article.insert({title:"今天天气很好",content:"我们一起去春游",_id:1}) 2.新增一条 ...

  9. MongoDB(课时3 MongoDB基本操作)

    3.3 MongoDB的基本操作 在MongoDB数据库里面存在数据库的概念,但没有模式(所有的信息都是按照文档保存的),保存数据的结构是BSON结构,只不过在进行一些数据处理的时候才会使用到Mong ...

  10. 2 Mongodb基本操作

    1.基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成 MongoDB文档类似于JSON对象,字段值可以包含其他文档.数组.文档数组 安装管理mongod ...

随机推荐

  1. hdu 3033 I love sneakers! 分组背包

    I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. 《Linux内核设计的艺术》学习笔记(四)默认段和偏移寄存器

    参考书籍:<Intel微处理器> 表1 默认的16位段 + 偏移寻址组合 段 偏移量 特殊用途 CS IP 指令地址 SS SP或BP 堆栈地址 DS BX.DI.SI.8位或16位数 数 ...

  3. Hibernate 对象的三种状态

    hibernate对象的三种状态: (一) 瞬时(临时)状态:   对象被创建时的状态,数据库里面没有与之对应的记录! (二) 持久状态:   处于session的管理中,并且数据库里面存在与之对应的 ...

  4. Nexus4_屏幕截图目录

    1. /sdcard/Pictures/Screenshots/ 2. 3.

  5. POJ2676,HDU4069解决数独的两种实现:DFS、DLX

    搜索实现:解决数独有两种思考策略,一种是枚举当前格能填的数字的种数,这里有一优化策略就是先搜索能填入种数小的格子:另一种是考虑处理某一行(列.宫)时,对于某一个没用过的数字,若该行(列.宫)只有一个可 ...

  6. [js] 函数节流

    原文链接:http://www.alloyteam.com/2012/11/javascript-throttle/

  7. centos7 php7 安装composer时Failed to decode zlib stream解决办法

    1 下载安装脚本 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 2 运行安装脚 ...

  8. Hacker Technology

    扒一扒「黑客军团」中用到的黑客工具 黑客 (Hacker) - 知乎 nmap - 百科 NMAP - 官网  中文翻译 Havij sqlmap 熊猫烧香 懒人在思考 零基础如何学习 Web 安全? ...

  9. go语言实战向导

    版权声明:本文由魏佳原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/173 来源:腾云阁 https://www.qclou ...

  10. DirectX小记

    1.关于SetViewPort 如果不调用SetViewPort,那么设备对应的ViewPort是什么. 2.关于多线程渲染 如果逻辑线程和渲染线程分开, 则存在两种渲染方式 a.逻辑线程一次性提交渲 ...