当前位置:   article > 正文

mongoDB操作文档(全部)_mongodb文档

mongodb文档

mongoDB

1、创建、查询数据库

  1. 创建数据库
  2. use dade
  3. 查询数据库
  4. show dbs

2、创建集合、查看

  1. 创建集合插入数据
  2. db.集合名.insert({})
  3. db.dade.insert({dade:'大得',age:18})
  4. 查看集合
  5. show tables
  6. 查看集合中的数据
  7. db.集合名.find() 查询所有
  8. db.dade.find()
  9. db.集合名.findOne()   查询第一个文档

3、删除集合、删除数据库

  1. 删除集合
  2. db.集合名.drop();
  3. 删除数据库
  4. use 数据库
  5. db.dropDatabase()

4、操作符

  1. $lt , $lte , $gt , $gte   ( < , <= , > , >= ), $ne ( <> ) ,$in , $nin , $or , $not,  
  2. $mod (取模), $exists, $where

4、增、删、改、查

  1. 1、增
  2. use dade 切换数据库
  3. db.集合名.insert({name:’xiaobai’,spc:{weight:100,address:’guangzhou’}})
  4. db.dade.insert({dade:'大得',age:1818})
  5. 2、删除
  6. db.dade.remove({age:1818})
  7. 删除大于18
  8. db.dade.remove({age:{'$gt':18}})
  9. 3、修改
  10. 这个age大于18的修改name值,注意其他值丢失
  11. db.dade.update({age:{'$gt':18}},{name:'修改'})
  12. 这个修改其他数据不丢失,修改age等于18
  13. db.dade.update({age:18},{'$set':{name:10}})
  14. 这个数据统计,如是20+10,操作后是30
  15. db.dade.update({age:1818},{'$inc':{name:10}})
  16. 4、查文档,dade是集合名
  17. 查所有
  18. db.dade.find()
  19. 查第一条
  20. db.dade.findOne();
  21. 查age等于18
  22. db.dade.find({age:18})
  23. 查age大于18
  24. db.dade.find({age:{'$gt':18}})
  25. 查询只拿name值,1只表示显示name值
  26. db.dade.find({},{name:1})
  27. 排除age,0表示排除
  28. db.dade.find({},{age:0})
  29. 升序,根据年龄升序
  30. db.集合名.find().sort({age:1})
  31. 倒序,根据年龄降序
  32. db.集合名.find().sort({age:-1})
  33. 显示集合前三的文档
  34. db.集合.find().limit(3)
  35. 集合分页
  36. db.集合.find().skip(2).limit(5)
  37. 获得集合总条数
  38. db.集合名.count()

5、模糊查询

  1. /66/,/相当mysql的%
  2. db.dade.find({dade:/66/})

6、$in查询

  1. 包含
  2. db.dade.find({age:{'$in':[18,1818]}})
  3. 不包含
  4. db.dade.find({age:{'$nin':[18,1818]}})

7、mongoDB账号管理

  1. 登录mongodb的客户端,使用如下命令
  2. 1、创建超级管理员
  3. use admin
  4. db.createUser({ user:'root', pwd:'123456', roles:[{role:'root',db:'admin'}]})
  5. 2、修改 Mongodb 数据库配置文件,enabled开启
  6. security:
  7. authorization: enabled
  8.  
  9. 3、重启 mongodb 服务
  10. 4、创建普通账号
  11. use dade
  12. db.createUser( { user: "phpadmin", pwd: "123456", roles: [ { role: "dbOwner", db: "php" } ] } )
  13. 5、查看当前库下的用户
  14. show users;
  15. 6、删除用户
  16. db.dropUser("dade")
  17. 7、修改密码
  18. db.updateUser( "admin",{pwd:"password"}); #修改用户密码
  19. db.auth("admin","password"); #密码认证

8、Mongodb 数据库角色

  1. 1)数据库用户角色:read、readWrite;
  2. 2)数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 4)备份恢复角色:backup、restore;
  5. 5)所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
  6. 6)超级用户角色:root

9、Mongodb 中索引

  1. 1、为name创建索引
  2. db.集合名.ensureIndex({name:1})
  3. db.集合名.ensureIndex({键名:1}) 1是升续 -1是降续
  4. 2、多列索引
  5. db.集合名.ensureIndex({field1:1/-1, field2:1/-1});
  6. 3、子文档索引
  7. db.集合名.ensureIndex({filed.subfield:1/-1})
  8. 如下文档可以建立子文档索引
  9. {name:’诺基亚手机1’,price:12.34,spc:{weight:100,area:’纽约’}}
  10. {name:’诺基亚手机2’,price:42.34,spc:{weight:200,area:’伦敦’}}
  11. 比如要查询weight等于100的文档。
  12. db.goods.find({‘spc.weight’:100})
  13. 根据当前案例,我们建立子文档索引
  14. db.集合名.ensureIndex({'spc.weight':1})
  15. 4、唯一索引
  16. db.集合名.ensureIndex({name:-1},{unique:true})
  17. 5、查看索引
  18. 常用命令:
  19. 1)查看当前索引状态: db.集合名.getIndexes();
  20. 2)详情查看本次查询使用哪个索引和查询数据的状态信息。
  21. explain executionStats 查询具体的执行 时间
  22. db.tablename.find().explain( "executionStats" )
  23. 关注输出的如下数值:explain.executionStats.executionTimeMillis
  24. 6、删除索引
  25. 删除单个索引
  26. db.集合名.dropIndex({filed:1/-1});
  27. 删除所有索引
  28. db.集合名.dropIndexes();
  29. 注意:在删除所有的索引时,主键索引会保留。
  30. 7、重建索引
  31. 一个表经过很多次修改后,导致表的文件产生空洞,索引文件也如此.
  32. 可以通过索引的重建,减少索引文件碎片,并提高索引的效率.
  33. 类似mysql中的optimize table
  34. mysql里面使用optimize table语法:optimize table 表名
  35. 语法:db.集合名.reIndex()
  36. 8、索引使用注意事项
  37. 1)创建索引的时候,注意1是正序创建索引 -1是倒叙创建索引
  38. 2)索引的创建在提高查询性能的同时会影响插入性能,对于经常查询少插入的文档可以考虑用索引
  39. 3)复合索引要注意索引的先后顺序。
  40. 4)每个键全建立索引不一定就能提高性能,索引不是万能的。
  41. 5)在做排序工作的时候如果是超大数据量也可以考虑加上索引用来提高排序的性能。

10、Mongodb 中数据导出与导入

  1. 1、导出数据
  2. 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的,所以,都有如下通用选项。
  3. 利用mongoexport
  4. -h host主机
  5. --port 端口
  6. -d 指明使用的库
  7. -c 指明要导出的集合
  8. -o 指明要导出的文件名
  9. --csv指定导出的csv格式
  10. -q 过滤导出
  11. -f field1 field2 列名
  12. -u username 用户名
  13. -p password 密码
  14. 如下操作,
  15. 注意:如果端口是默认的可以不使用--port来指定端口。
  16. 比如我们要导出php库下面的Java集合,
  17. E:\Program Files\MongoDB\Server\4.0\bin>mongoexport -h localhost -d php -c java -o e:/nihao.json -u phpadmin -p 123456
  18. 2、导入数据
  19. 使用mongoimport命令
  20. -d 待导入的数据库
  21. -c 待导入的集合(不存在会自己创建)
  22. --type csv/json(默认)
  23. --file 备份文件名称包含路径
  24. 1: 导入json
  25. ./bin/mongoimport -h --port 端口号 -d test -c goods --file ./goodsall.json  
  26. 2: 导入csv
  27. ./bin/mongoimport -h --port 端口号 -d test -c goods --type csv -f goods_id,goods_name --file ./goodsall.csv
  28. ./bin/mongoimport -h --port 端口号 -d test -c goods --type csv --headline -f goods_id,goods_name --file ./goodsall.csv
  29. 案例:把刚才导出的nihao.json文件导入到php库里面的user集合里面。
  30. E:\Program Files\MongoDB\Server\4.0\bin>mongoimport -h localhost -d php -c nihao --file e:/nihao.json -u phpadmin -p 123456

11、主从复制(读写分离)

  1. 可以通过不同端口来模拟多台mongodb服务器
  2. 具体的配置步骤
  3. 1、启动主服务器
  4. --port --dbpath –logpath --master
  5. 2、启动从服务器
  6. --port –dbpath –logpath –slave –source 127.0.0.1:1111
  7. 3、客户端登陆到主服务器
  8. 添加一些数据,测试是否同步到从服务器
  9. 如下在主服务器里面,添加了一些文档
  10. 第一步:客户端登录到主服务器,添加一些文档
  11. mongo localhost:1111
  12. 登陆到从服务器,查看是否有数据
  13. mongo localhost:2222
  14. 如果有数据,则成功了

12、tp6使用mongodb

  1. 配置数据库,在数据库配置文件
  2. 'mongo'=>[
  3.   'type' => 'mongo',  
  4.   'hostname' => '127.0.0.1',  
  5.   'database' => 'database',
  6.   'username'       => '',
  7.   'password'       => '',
  8.   'hostport' => '27017'
  9. ]
  10. 新增
  11. $res = Db::connect('mongo')->table('news')->insertGetId($data);
  12. 查询
  13. $res = Db::connect('mongo')->table('news')->select();
  14. 单条件查询
  15. $mangoList = Db::connect('mongo')->table('news')->where('id','76')->select();
  16. 更新
  17. $mangoList = Db::connect('mongo')->table('news')->where('id','76')->update([
  18. 'title'=>'eeeeeeeeeee'
  19. ]);
  20. 删除
  21. $mangoList = Db::connect('mongo')->table('news')->where('id','75')->delete();
  22. $mangoList = Db::connect('mongo')->table('news')->where('_id','6021506535f34b1ef9497352')->delete();

13、php操作

  1. 插入
  2. $mongo = new MongoClient('mongodb://localhost:27017');
  3. $db = $mongo->mf; //选择数据库
  4. $collection = $db->friend; //选择文档集合
  5. $doc = [ //定义一个文档,即一个数组
  6. 'First Name' = >'Jet', 'Last Name' = >'Wu', 'Age' = >26, 'Phone' = >'110', 'Address' = >['Country' = >'China', 'City' = >'Shen Zhen'], 'E-Mail' = >['123456@qq.com', '666666@sina.com', '8888888@qq.com', '77887788@qq.com']];
  7. $res = $collection->insert($doc);
  8. 查询
  9. $mongo = new MongoClient('mongodb://localhost:27017');
  10. $db = $mongo - >mf;
  11. $collection = $db->friend;
  12. $cursor = $collection->find(['Address'=>'China']);

 

14、php安装mongodb扩展

https://windows.php.net/downloads/pecl/releases/mongodb/

c1cbebaef54b42dfa9a6412616c6bfd2.png

 c7fd801ad63943b2a7c878208dc795b7.png

 

注意:扩展文件

下载合适的php_mongodb.dll文件。 

(1)php的版本 

(2)是否是线程安全的thread safe(ts)

(3)是vc几的 

(4)php是32位的还是64位的。

步骤:

(1)把对应的扩展,拷贝到php的安装目录里面的ext目录里面。

注意:拷贝后,改名为php_mongo.dll

b6ab69619ff44d69a975356383bc303c.png

 

 

(2)打开php.ini文件,引入该扩展,

e7d74801e63d4006b8b407b720bc3d62.png

 

 

(3)重启apache,

使用phpinfo()函数测试

f713b0ccf5024845b8907fa2225fc49d.png

 

 

tp6配置

安装

composer require topthink/think-mongo
  1. // 更多的数据库配置信息
  2. 'mongo'=>[
  3. 'type' => 'mongo',
  4. 'hostname' => '127.0.0.1',
  5. 'database' => '数据库名称',
  6. 'username' => '',
  7. 'password' => '',
  8. 'hostport' => '27017'
  9. ]

操作篇

https://blog.csdn.net/qq_34631220/article/details/128173120?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128173120%22%2C%22source%22%3A%22qq_34631220%22%7D

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号