Mongdb基本操作

来源:互联网 发布:故事板 mac 编辑:程序博客网 时间:2024/04/29 16:45

简介

MongoDb就是一种Nosql类型的产品。是一种面向文档的数据库!

使用

下载安装包,网站https://www.mongodb.org

以管理员的方式打开cmd,进入mongodb下面的bin目录下面

mongod.exe --install --dbpath F:\mongodb\data --logpath F:\mongodb\log.txt

打开服务窗口并启动

services.msc
找到MongoDB这项服务并把他启动

基本操作
1.连接Mongodb服务器

F:\mongodb\bin\mongo.exe
然后可以查看到下面有
connecting to: test #这就是当前连接的数据库的名字

2.在客户端可以直接执行JavaScript脚本来操作数据库

3.帮助系统

show dbs:显示数据库
Help:系统级别的帮助
Db.help():数据库级别的帮助
Db.xx.help():集合级别的帮助[集合=表]

4.Mongodb中的Db变量代表当前数据库

>db
test#当前数据库

5.无模式的数据库
  1. Mongodb是无模式的数据库:可以不用创建数据库和集合而直接使用!集合没有结构!

MongoDb的CURD


  1. 插入新纪录
    向shop数据库中的商品集合中插入一件商品

>db.goods.insert( {'goods_name':'goods_2','shop_price':200} )
说明:Mongodb中一条记录使用Json格式来表示。
在插入一条记录是会为每条记录添加一个id字段用来唯一标识这条记录。
>db.goods.find()
{ "_id" : ObjectId("58fe26f4c08b6e2772287fa6"), "goods_name" : "goods_2", "shop_price" : 200 }
2.查询出所有的记录
>db.goods.find()
{ “_id” : ObjectId(“58fe22f1e24d5f0ae8c00403”), “goods_name” : “goods_1”, “shop_price” : 200 }
{ “_id” : ObjectId(“58fe26f4c08b6e2772287fa6”), “goods_name” : “goods_2”, “shop_price” : 200 }

3.修改一条记录
把价格为100元的商品修改为300元:
流程:A. 取出这件商品 B. 修改价格 C. 存回去

>var g_100=db.goods.findOne( {'shop_price':100} )
>g_100.shop_price=300
300
> db.goods.save(g_100)

4.删除记录

db.goods.remove({'shop_price':300})

5.查询操作符
查询所有价格小于200元的

db.goods.find( {‘shop_price’: {“$lt”:220} } )
{ “_id” : ObjectId(“58fe22f1e24d5f0ae8c00403”), “goods_name” : “goods_1”, “shop_price” : 200 }

常用操作符

php操作MongoDB

先为PHP安装Mongodb的扩展
下载扩展文件php_mongo.dll
选择合适的扩展文件
看phpinfo里面版本和

把php_mongo.dll文件复制到php扩展目录中
修改php.ini在文件中添加一行 extension=php_mongo.dll
重启apache

老的php版本

php7

PHP7 连接 MongoDB 语法如下:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

插入数据

将 name 为”菜鸟教程” 的数据插入到 test 数据库的 runoob 集合中。

$bulk = new MongoDB\Driver\BulkWrite;$document = ['_id' => new MongoDB\BSON\ObjectID, 'name' => '菜鸟教程'];$_id= $bulk->insert($document);var_dump($_id);$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);$result = $manager->executeBulkWrite('test.runoob', $bulk, $writeConcern);

读取数据

这里我们将三个网址数据插入到 test 数据库的 sites 集合,并读取迭代出来:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  // 插入数据$bulk = new MongoDB\Driver\BulkWrite;$bulk->insert(['x' => 1, 'name'=>'菜鸟教程', 'url' => 'http://www.runoob.com']);$bulk->insert(['x' => 2, 'name'=>'Google', 'url' => 'http://www.google.com']);$bulk->insert(['x' => 3, 'name'=>'taobao', 'url' => 'http://www.taobao.com']);$manager->executeBulkWrite('test.sites', $bulk);$filter = ['x' => ['$gt' => 1]];$options = [    'projection' => ['_id' => 0],    'sort' => ['x' => -1],];// 查询数据$query = new MongoDB\Driver\Query($filter, $options);$cursor = $manager->executeQuery('test.sites', $query);foreach ($cursor as $document) {    print_r($document);}

输出结果为:

stdClass Object(    [x] => 3    [name] => taobao    [url] => http://www.taobao.com)stdClass Object(    [x] => 2    [name] => Google    [url] => http://www.google.com)

更新数据

接下来我们将更新 test 数据库 sites 集合中 x 为 2 的数据:

$bulk = new MongoDB\Driver\BulkWrite;$bulk->update(    ['x' => 2],    ['$set' => ['name' => '菜鸟工具', 'url' => 'tool.runoob.com']],    ['multi' => false, 'upsert' => false]);$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);

接下来我们使用 “db.sites.find()” 命令查看数据的变化,x 为 2 的数据已经变成了菜鸟工具:

删除数据

以下实例删除了 x 为 1 和 x 为 2的数据,注意 limit 参数的区别:

$bulk = new MongoDB\Driver\BulkWrite;$bulk->delete(['x' => 1], ['limit' => 1]);   // limit 为 1 时,删除第一条匹配数据$bulk->delete(['x' => 2], ['limit' => 0]);   // limit 为 0 时,删除所有匹配数据$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");  $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);

更多使用方法请参考:http://php.net/manual/en/book.mongodb.php。

权限

默认情况下mongodb是没有开户权限所以任何人不需要用户名密码就可以连接上数据库。
流程:
1. 要先在mongodb中创建好管理员账号
2. 有了管理员之后再重新安装并开启权限系统

创建管理员

例1. 添加超级管理员

例2. 向jxshop数据库中添加一个管理员

  1. 重新安装mongodb,安装时添加—auth参数开启权限
    2.1删除mongodb

    2.2重新安装添加—auth参数

    到此权限开启了!!现在只有登录之后才能访问。

    登录之后:

    普通管理员只能操作这一个数据库

    超级管理员除外,可以操作任何数据库:
    超级管理员登录:

    扩展:管理员管理相关命令:
0 0
原创粉丝点击