使用PHP来开发MongoDB并在shell查看数据

1、shell连接使用mongoDB:

启动mongodb: mongod --dbpath d:\mongoDB\db

打开新shell,连接mongodb:mongo



2、shell基本命令:

MongoDB命令行操作

查看所有数据库:show dbs

使用某个数据库:use mydb

查看所有集合:show collections

查看某个集合的所有元素:db.mycollection.find()

指定某个值来查看相应的元素:db.mycollection.find({name : "wing jay"},{name:1 ,age:1 ,id:0})

删除数据库: db.dropDatabase()

查看当前数据库: db

查看当前所有collection: show collections

新建集合collection: db.createCollection("student"){"name" : "xiaoming"} 或者 db.student.insert({"name" : "xiaoming"})

删除集合collection:db.student.drop()

重命名集合collection:db.student.renameCollection("STUDENT"){"name" : "xiaoming"}



3、使用php代码来执行mongoDB数据库操作

首先要在php中配置好mongoDB,同时安装好mongoDB数据库。

1、连接数据库

mongodb默认的初始用户名和密码均为admin。

建立文件mongotest.php,设置连接所需用户名和密码,建立数据库连接

<?php
//设置utf-8编码格式header("Content-type: text/html; charset=utf-8"); 
$conn = new Mongo("mongodb://localhost:27017//admin:admin");
//默认用户和密码为admin  

//选择数据库blog,如果没有,则创建
$db = $conn->blog;
//也可以写成:$db = $conn->selectDB(‘blog‘);  

//制定结果集(表名:posts)
$collection = $db->posts;
//也可以写成:$collection = $db->selectCollection(‘posts‘);  

?>  

这样就成功创建了blog数据库和新的数据集posts(相当于SQL中的数据表概念)

2、新增数据(Create)

//新增一条blog posts
$post = array(‘title‘ => ‘第一篇博客‘, ‘content‘ => ‘这是第一篇博客的内容.‘);
$collection->insert($post);  

新增成功后,数据内容为:

array(3) { ["_id"]=> object(MongoId)#8 (1) { ["$id"]=> string(24) "4ee0799de1fecdbc16000001" } ["title"]=> string(15) "第一篇博客" ["content"]=> string(31) "这是第一篇博客的内容." }  

3、查询数据(Read)

//查找
$cursor = $collection->find();
foreach($cursor as $key => $value){
    var_dump($value);
}  

4、更新数据(Update)

$newdata = array(‘$set‘ => array("content"=>"这是更新过的第一篇博客的内容."));
$collection->update(array("title" => "第一篇博客"), $newdata);  

更新成功后的数据内容为:

array(3) { ["_id"]=> object(MongoId)#7 (1) { ["$id"]=> string(24) "4ee0799de1fecdbc16000001" } ["content"]=> string(43) "这是更新过的第一篇博客的内容." ["title"]=> string(15) "第一篇博客" }  

批量更新

$content_1 = array(‘title‘ => ‘第一篇博客‘, ‘content‘ => ‘今天好开心‘);
$newdata = array(‘$set‘ =>array(‘content‘ => ‘今天不仅开心还运气特别好哈哈哈‘ ));
$filter = array(‘title‘ => ‘第一篇博客‘); //过滤器
$options[‘multiple‘] = true; //批量更新
$collection->update($filter,$newdata,$options);

5、删除数据(Delete)

//删除
$collection->remove(array(‘title‘=>‘第一篇博客‘));  

6、其它常用操作

//关闭连接
$conn->close();  

//删除一个数据库
$conn->dropDB("blog");  

//列出所有可用数据库
$dbs = $conn->listDBs();  
时间: 2024-10-22 16:00:56

使用PHP来开发MongoDB并在shell查看数据的相关文章

全自动安装mongoDB数据库的shell脚本

最近在研究mongoDB数据库,写了个全自动安装mongoDB数据库的shell脚本,仅供参考,欢迎拍砖,内容如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命令 # -c "string" 从strings中读取命令 # 下载目录 downloadsDir=/root/Downloads # 安装目录 appDir=/usr/local/mongodb # 判断备份目录是否存在,不存时

MongoDB安装及shell简介

MongoDB安装 MongoDB具有跨平台的优良特性,提供了对主流的操作系统支持,我们可以根据自己使用的操作系统,选择下载对应的安装包. 图 1. MongoDB支持各个版本的操作系统 MongoDB在各个操作系统上的安装都比较简单,我们只需要下载安装包,解压到某个目录下,然后指定存储目录并执行mongod,其就可以监听客户端的链接请求了:下面简单的介绍一下在Ubuntu下的安装过程: 将下载的安装包拷贝到特定的目录下,并进行解压 图 2.拷贝MongoDB并解压缩 执行解压MongoDB目录

springdata开发MongoDB示例

springdata框架 使用IDEA初始化springboot+springdata框架,开发mongodb示例,pom.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

JavaWeb开发中form、ajax提交数据Model转化

JavaWeb开发中form.ajax提交数据Model转化 问题 最近学习MongoDB数据库,作为java开发的我,当然需要做个小的web程序来测试一番了.在html中我采取ajax提交方式,因为我要模拟各种类型的数据,基础数据类型.数组.对象等.然而,最终发现了个不同的地方:Form和ajax提交数据,在HttpServletRequest中尽然参数名有所不同. 数据类型 form ajax 基础数据 para=value para=value 数组 para[]={"aaa",

Mongodb for PHP教程之数据操作

Mongodb的常用操作 参看手册,php官方的http://us2.php.net/manual/en/mongo.manual.php 也可以参看mongodb官方的教程 数据库连接 ⑴默认格式 $m = new Mongo(); //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如                   192.168.0.4:27017,如果端口是27017,端口可以省略 ⑵标准连接 $m = new Mongo("mongodb://${username}

ETL调度开发(5)——连接数据库执行数据库命令子程序

ETL调度中读写数据信息,都需要连接数据库,下面的子程序通过传入的数据库连接字符串和数据库命令(或SQL)执行所需要的操作: #!/usr/bin/bash #created by lubinsu #2014 source ~/.bash_profile values=`sqlplus -S $1 << EOF set heading off feedback off pagesize 0 verify off echo off WHENEVER SQLERROR exit SQL.SQLCO

erlang shell表格数据对齐

最近在erlang shell做一些测试,为了让测试结果数据显得更直观,想对齐需要打印的数据,做成像表格一样的效果. 开始的想法是在数据中插入tab.当然,erlang也有对tab的支持,但实际效果不理想. 对tab的支持如下: 1> io:format("No1~sNo2~n1~s2~n", ["\t", "\t"]). No1        No2 1             2 ok 但数据的长度超过8个字符就有问题,那有没有一种可以

C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化

公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的全分表,否则,将来我们无法用其他小型数据库,例如mysql 现在系统的短信已经进行了拆表接着打算把日志也进行拆表确保数据库里,没有庞大的表,随时可以切换数据库 每个人把自己负责的事情,做到自己能力的及至,做到部门能力的及至,公司能力的及至,就很有希望了有时候我说话很随意,但是一般会注意,我说出去的话

Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式 3.Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载 4.Chrome扩展开发之四——Gmail API的简单介绍 5.Chrome扩展开发之五——OAuth2的理解 6.Chrome扩展开发之六——GmailAssist核心功能的实现(包括Gmail API的使用中的