首页
文章分类
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
网上邻居
留言板
欣赏小姐姐
关于我
Search
登录
1
利用AList搭建家庭个人影音库
4,709 阅读
2
浅尝Restful Fast Request插件,一句话完成 逆向过程
4,101 阅读
3
完美破解The Economist付费墙
2,845 阅读
4
i茅台app接口自动化csharp wpf实现,挂机windows服务器每日自动预约
2,664 阅读
5
青龙面板基本使用并添加修改微信/支付宝步数脚本
2,113 阅读
Search
标签搜索
PHP
Laravel
前端
csharp
安卓逆向
JavaScript
Python
Java
爬虫
抓包
Git
winform
android
Fiddler
Vue
selenium
LeetCode
每日一题
简单题
docker
Hygge
累计撰写
98
篇文章
累计收到
446
条评论
首页
栏目
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
页面
网上邻居
留言板
欣赏小姐姐
关于我
用户登录
搜索到
1
篇与
的结果
2023-06-25
Docker安装MongoDB
1.拉取镜像docker pull mongo:latest2.创建容器docker run -itd --name mongo -p 27017:27017 mongo --auth参数说明:-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。--auth:需要密码才能访问容器服务。3.安装成功接着使用以下命令添加用户和设置密码,并且尝试连接。$ docker exec -it mongo mongo admin # MongoDB 6.0 及以上版本使用以下命令: # docker exec -it mongo mongosh admin # 创建一个名为 admin,密码为 123456 的用户。 > db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); # 尝试使用上面创建的用户信息进行连接。 > db.auth('admin', '123456')4.常用命令4.1 超级用户相关进入数据库adminuse admin增加或修改用户密码db.addUser(‘name’,’pwd’)查看用户列表db.system.users.find()用户认证db.auth(‘name’,’pwd’)删除用户db.removeUser(‘name’)查看所有用户show users查看所有数据库show dbs查看所有的collectionshow collections查看各collection的状态db.printCollectionStats()查看主从复制状态db.printReplicationInfo()修复数据库db.repairDatabase()设置记录profiling,0=off 1=slow 2=alldb.setProfilingLevel(1)查看profilingshow profile拷贝数据库db.copyDatabase(‘mail_addr’,’mail_addr_tmp’)删除collectiondb.mail_addr.drop()删除当前的数据库db.dropDatabase()4.2 增删改存储嵌套的对象db.foo.save({‘name’:’imdst’,’address’:{‘city’:’guangzhou’,’post’:100096},’phone’:[158,155]})存储数组对象db.user_addr.save({‘Uid’:’
[email protected]
’,’Al’:['
[email protected]
','
[email protected]
']})根据query条件修改,如果不存在则插入,允许修改多条记录db.foo.update({‘yy’:5},{‘$set’:{‘xx’:2}},upsert=true,multi=true)删除yy=5的记录db.foo.remove({‘yy’:5})删除所有的记录db.foo.remove()4.3 索引增加索引 1(ascending),-1(descending)db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true});索引子对象db.user_addr.ensureIndex({‘Al.Em’: 1})查看索引信息db.foo.getIndexes()db.foo.getIndexKeys()根据索引名删除索引db.user_addr.dropIndex(‘Al.Em_1′)4.4 查询查找所有db.foo.find()查找一条记录db.foo.findOne()根据条件检索10条记录db.foo.find({‘msg’:’Hello 1′}).limit(10)sort排序db.deliver_status.find({‘From’:’
[email protected]
’}).sort({‘Dt’,-1}) db.deliver_status.find().sort({‘Ct’:-1}).limit(1)count操作db.user_addr.count()distinct操作,查询指定列,去重复db.foo.distinct(‘msg’)\#”>=”操作db.foo.find({“timestamp”: {“$gte” : 2}})子对象的查找db.foo.find({‘address.city’:’beijing’})4.5 管理查看collection数据的大小db.deliver_status.dataSize()查看colleciont状态db.deliver_status.stats()查询所有索引的大小db.deliver_status.totalIndexSize()advanced queries:高级查询条件操作符 $gt : > $lt : <<br> $gte: >= $lte: <= $ne : !=、<> $in : in $nin: not in $all: all $not: 反匹配(1.3.3及以上版本)查询 name <> “bruce” and age >= 18 的数据db.users.find({name: {$ne: “bruce”}, age: {$gte: 18}});查询 creationdate > ’2010-01-01′ and creationdate <= ’2010-12-31′ 的数据db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)});查询 age in (20,22,24,26) 的数据db.users.find({age: {$in: [20,22,24,26]}});查询 age取模10等于0 的数据db.users.find(‘this.age % 10 == 0′);db.users.find({age : {$mod : [10, 0]}});查询所有name字段是字符类型的db.users.find({name: {$type: 2}});查询所有age字段是整型的db.users.find({age: {$type: 16}});对于字符字段,可以使用正则表达式 查询以字母b或者B带头的所有记录db.users.find({name: /^b.*/i});匹配所有db.users.find({favorite_number : {$all : [6, 8]}});查询不匹配name=B*带头的记录db.users.find({name: {$not: /^B.*/}});查询 age取模10不等于0 的数据db.users.find({age : {$not: {$mod : [10, 0]}}});选择返回age和id字段(id字段总是会被返回)db.users.find({}, {age:1});db.users.find({}, {age:3});db.users.find({}, {age:true});db.users.find({ name : “bruce” }, {age:1});0为false, 非0为true选择返回age、address和_id字段db.users.find({ name : “bruce” }, {age:1, address:1});排除返回age、address和_id字段db.users.find({}, {age:0, address:false});db.users.find({ name : “bruce” }, {age:0, address:false});查询所有存在name字段的记录db.users.find({name: {$exists: true}});排序sort()查询所有不存在phone字段的记录db.users.find({phone: {$exists: false}});排序sort() 以年龄升序ascdb.users.find().sort({age: 1});以年龄降序descdb.users.find().sort({age: -1});限制返回记录数量limit()返回5条记录db.users.find().limit(5);返回3条记录并打印信息db.users.find().limit(3).forEach(function(user) {print(‘my age is ‘ + user.age)});结果my age is 18my age is 19my age is 20限制返回记录的开始点skip()从第3条记录开始,返回5条记录(limit 3, 5)db.users.find().skip(3).limit(5);查询记录条数count()db.users.find().count();db.users.find({age:18}).count();以下返回的不是5,而是user表中所有的记录数量db.users.find().skip(10).limit(5).count();如果要返回限制之后的记录数量,要使用count(true)或者count(非0)db.users.find().skip(10).limit(5).count(true);分组group()假设test表只有以下一条数据{ domain: “www.mongodb.org”, invoked_at: {d:”2015-05-03″, t:”17:14:05″}, response_time: 0.05, http_action: “GET /display/DOCS/Aggregation”}使用group统计test表11月份的数据count:count()、totaltime:sum(responsetime)、avgtime:total*time/count;db.test.group( { cond: {“invoked_at.d”: {$gt: “2015-05″, $lt: “2015-06″}} , key: {http_action: true} , initial: {count: 0, total_time:0} , reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time } , finalize: function(out){ out.avg_time = out.total_time / out.count } } ); [ { "http_action" : "GET /display/DOCS/Aggregation", "count" : 1, "total_time" : 0.05, "avg_time" : 0.05 } ]引用1.Docker 安装 MongoDB:https://www.runoob.com/docker/docker-install-mongodb.html
2023年06月25日
187 阅读
0 评论
0 点赞