php 操作mongodb——增删改查
来源:互联网 发布:淘宝成都服装出租 编辑:程序博客网 时间:2024/06/06 03:09
conn.php
<?php
$conn = new Mongo("mongodb://user1:123456@localhost:27017/test"); //用户授权链接mongodb test数据库
$db = $conn->test;
?>
find.php
<?php
include "conn.php";
$c1 = $db->c1; //操作c1集合
//由于php里面不能直接用json
//db.c1.find({name:"user1"}); 不能这么玩
//{name:"user1"} == array("name"=>"user1") 用这种形式
//[1,2] == array(1,2);
//{} == array()
$arr=array();
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
print_r($val['name']); //取id的话 得"_id"
}
例子2:指定值查询
$arr = array("name"=>"user1"); //查询nam=user1的
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
$fis = $val['_id'];
print_r($val);
echo "<a href='user.php?fid={$fid}'></a>"; //你会发现fid传到user.php的时候变成字符串了,怎么解决?
//user.php 根据_id查mongodb对应的数据
<?php
include "conn.php";
$c1 = $db->c1;
$oid= new MongoId($_GET['fid']); 用这个转一下
var_dump($oid); //还是Object,不转的话就是string类型
$arr = array("_id"=>"$oid");
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
print_r($val);
}
?>
}
例子3:增加
include "conn.php";
$c1 = $db->c1;
//db.c1.insert({"name"=>"user3",age:30,"sex"=>"nan"});
$arr = array("name"=>"user3","age"=>30,"sex"=>"nan");
if($c1->insert($arr))
echo '成功';
else
echo '失败';
例子4:删
include "conn.php";
$c1 = $db->c1;
//db.c1.remove({"name"=>"user2"});
$arr = array("name"=>"user2");
if($c1->remove($arr))
echo '删除成功';
else
echo '删除失败';
例子4:改
include "conn.php";
$c1 = $db->c1;
//db.c1.update({"name"=>"user2"},{$set:{age:20,sex:"nan"}}); 增加字段
$sarr = array("name"=>"user2");
$darr = array('$set'=>array('sex'=>'nan','age'=>24));
$opts = array('upsert'=>0,'multiple'=>1);
if($c1->update($sarr,$darr,$opts)) //php里面的update只能传3个参数
echo '更改成功';
else
echo '更改失败';
//关闭
$conn->close();
<?php
$conn = new Mongo("mongodb://user1:123456@localhost:27017/test"); //用户授权链接mongodb test数据库
$db = $conn->test;
?>
find.php
<?php
include "conn.php";
$c1 = $db->c1; //操作c1集合
//由于php里面不能直接用json
//db.c1.find({name:"user1"}); 不能这么玩
//{name:"user1"} == array("name"=>"user1") 用这种形式
//[1,2] == array(1,2);
//{} == array()
$arr=array();
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
print_r($val['name']); //取id的话 得"_id"
}
例子2:指定值查询
$arr = array("name"=>"user1"); //查询nam=user1的
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
$fis = $val['_id'];
print_r($val);
echo "<a href='user.php?fid={$fid}'></a>"; //你会发现fid传到user.php的时候变成字符串了,怎么解决?
//user.php 根据_id查mongodb对应的数据
<?php
include "conn.php";
$c1 = $db->c1;
$oid= new MongoId($_GET['fid']); 用这个转一下
var_dump($oid); //还是Object,不转的话就是string类型
$arr = array("_id"=>"$oid");
$rst = $c1->find($arr);
foreach($rst as $val){
echo "<pre>";
print_r($val);
}
?>
}
例子3:增加
include "conn.php";
$c1 = $db->c1;
//db.c1.insert({"name"=>"user3",age:30,"sex"=>"nan"});
$arr = array("name"=>"user3","age"=>30,"sex"=>"nan");
if($c1->insert($arr))
echo '成功';
else
echo '失败';
例子4:删
include "conn.php";
$c1 = $db->c1;
//db.c1.remove({"name"=>"user2"});
$arr = array("name"=>"user2");
if($c1->remove($arr))
echo '删除成功';
else
echo '删除失败';
例子4:改
include "conn.php";
$c1 = $db->c1;
//db.c1.update({"name"=>"user2"},{$set:{age:20,sex:"nan"}}); 增加字段
$sarr = array("name"=>"user2");
$darr = array('$set'=>array('sex'=>'nan','age'=>24));
$opts = array('upsert'=>0,'multiple'=>1);
if($c1->update($sarr,$darr,$opts)) //php里面的update只能传3个参数
echo '更改成功';
else
echo '更改失败';
//关闭
$conn->close();
?>
《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《
为了确保正确连接,你需要指定数据库名,如果数据库在mongoDB中不存在,mongoDB会自动创建
代码片段如下:
<?php$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017$db = $m->test; // 获取名称为 "test" 的数据库//如果要指定主机与端口$m = new MongoClient('mongodb://192.168.2.85:12345'); // 连接默认主机和端口为:mongodb://localhost:27017
$db = $m->test; // 获取名称为 "test" 的数据库
?>
创建集合
创建集合的代码片段如下:
<?php$m = new MongoClient(); // 连接$db = $m->dbnamee; // 获取名称为 "dbname" 的数据库$collection = $db->createCollection("table");echo "集合创建成功";?>
插入文档
在mongoDB中使用 insert() 方法插入文档:
插入文档代码片段如下:
<?php$m = new MongoClient(); // 连接到mongodb$db = $m->test; // 选择一个数据库$collection = $db->runoob; // 选择集合$document = array( "title" => "MongoDB", "description" => "database", "likes" => 100,"url" => "http://www.runoob.com/mongodb/","by", "菜鸟教程");$collection->insert($document);echo "数据插入成功";?>
查找文档
$cursor=$collection->find();/ 循环显示文档标题foreach ($cursor as $document) {echo $document["title"] . "\n";}
更新文档
1.更新匹配的第一条数据
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));
2.如果更新不存在的数据,要新建,请使用第三个参数['upsert'=>true]
$collection->update(['x'=>3],['$set'=>['kk'=>'34ere']],['upsert'=>true]);
3.如果要更新匹配的所有数据,请使用第三个参数['multiple'=>true]
$collection->update(['x'=>3],['$set'=>['kk'=>'34ere3']],['multiple'=>true]);
删除文档
// 移除文档$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));
关闭连接
<?php $m->close(); ?>
示例:
<?php //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy"); $db = $m->comedy; //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可以使用 $collection = $db->collection; $db->selectCollection("collection"); //添加一个元素 $obj = array( "title" => "Calvin and Hobbes-".date('i:s'), "author" => "Bill Watterson" ); //将$obj 添加到$collection 集合中 $collection->insert($obj); //添加另一个元素 $obj = array( "title" => "XKCD-".date('i:s'), "online" => true ); $collection->insert($obj); //查询所有的记录 $cursor = $collection->find(); //遍历所有集合中的文档 foreach ($cursor as $obj) { echo $obj["title"] . "<br />\n"; } //删除所有数据 //$collection->remove(); //删除 name 为hm //$collection->remove(array('name'=>'hm')); //断开MongoDB连接 $m->close(); ?>
0 0
- php 操作mongodb——增删改查
- mongodb php增删改查基本操作
- MongoDB—增删查改
- mongodb php 增删改查
- node学习篇——mongodb增删改查操作
- Php操作mongodb的基本操作—增删改…
- MongoDB——增删查改
- MongoDB(三)——增删改查
- MongoDB——文档增删查改
- MongoDB(三)——增删改查
- mongodb——数据库增删改查
- MongoDB—细说增删查改
- MongoDB 增删查改基本操作
- mongodb增删改查基本操作
- mongodb基础操作--增删改查
- mongodb增删改查操作汇总
- mongoDB 基本操作,增删改查
- Java 操作MongoDb 增删改查
- 蛇形矩阵
- iOS开发实战-时光记账Demo 本地数据库版
- 【ife】任务二十九:表单(一)单个表单项的检验
- 第042讲 循环控制
- LR问题
- php 操作mongodb——增删改查
- linux常用指令(2)
- 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。求s=a+aa+aaa+aaaa+…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加
- LeetCode 14 Longest Common Prefix
- Scala包
- iOS退出app
- 第044 金字塔案例以及一些练习题
- 利用DBLink创建数据库数据定时更新或同步
- The Falling Leaves 下落的树叶 UVA 699(二叉树)