首页
论坛
社团
我的

ADSKN论坛

 找回密码
立即注册

扫一扫,微信登陆

开启左侧

MongoDB常用使用 汇总

[复制链接]
 楼主| 捧棒二煞 发表于2022-7-19 00:01:30 | 显示全部楼层 |阅读模式 | 来自 上海市 腾讯云

马上注册加入论坛,获取更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

一、增编削 查

查看当前数据库中所有的聚集 ,使用 下令

  1. show collections 或使用
  2. show tables
复制代码

创建聚集 有两种方式,表现 创建和隐式创建

  1. 表现 创建可以使用 下令 db.createCollection(“聚集 名称")
  2. 隐式创建可以使用 下令 db.聚集 名称.insert({}),
  3. 指创建聚集 并同时向聚集 中插入数据,
  4. 例如:db.customer.insert({name:”jack”})
复制代码

向聚集 添加文档

使用 下令 db.聚集 名称.insert({}),例如:

  1. db.user1.insert({name:”jack”,age:20})
复制代码

删除聚集 中的文档

  1. 使用 下令 db.聚集 名称.remove({删除条件}),
  2. 不加删除条件为删除聚集 中的所有文档:
  3. 例如,删除c1聚集 中的所有文档 db.c1.remove()
  4. 删除c1聚集 中name为user1的文档 db.c1.remove({name:”user1”})
复制代码

查询聚集 中的文档

  1. db.聚集 名称.find({条件})
  2. 或者使用
  3. db.聚集 名称.findOne() 查询第一个文档
复制代码

查询聚集 中的文档,返回某些特定的键值
除了查询表达式以外,MongoDB还支持一些额外的参数选项。
如果仅仅只想返回某些特定的字段值:
返回除了age字段外的所有字段
db.user.find({},{age:0});

返回tags=tennis除了comments的所有列
db.posts.find({tags:'tennis'},{comments:0});

返回userid=16的name字段
db.user.find({userid:16},{name:1});
{"_id":16,"name":"user16"}

返回x=john的所有z字段
db.things.find({x:"john"},{z:1});

查询聚集 中的文档 ,使用 条件表达式(<, <=, >, >=,!=)
//大于: field > value
db.collection.find({field:{$gt:value}});

//小于: field < value
db.collection.find({field:{$lt:value}});

//大于等于: field >= value
db.collection.find({field:{$gte:value}});

//小于等于: field <= value
db.collection.find({field:{$lte:value}});

//不等于:  field != value
db.collection.find({field:{$ne:value}});

查询聚集 中的文档 ,统计(count)、排序(sort)、分页(skip、limit)

  1. db.customer.count();
  2. db.customer.find().count();
  3. db.customer.find({age:{$lt:5}}).count();
  4. db.customer.find().sort({age:1}); 降序-1
  5. db.customer.find().skip(2).limit(3);
  6. db.customer.find().sort({age:-1}).skip(2).limit(3);
  7. db.customer.find().sort({age:-1}).skip(2).limit(3).count();
  8. db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
  9. db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);
复制代码

查询聚集 中的文档
$all重要 用来查询数组中的包罗关系,
查询条件中只要有一个不包罗就不返回

$in,类似于关系型数据库中的IN

$nin,与$in相反

$or,相称 于关系型数据库中的OR,表示或者的关系,
例如查询name为user2或者age为3的文档,下令 为:
db.customer.find({$or:[{name:”user2”},{age:3}]})

$nor,表示根据条件过滤掉某些数据,例如查询name不是user2,age不是3的文档,下令 为:
db.customer.find({$nor:[{name:”user2”},{age:3}]})

$exists,用于查询聚集 中存在某个键的文档或不存在某个键的文档,例如查询customer聚集 中存在name键的所有文档,可以使用
db.customer.find({name:{$exists:1}})
$exists:1表示真,指存在
$exists:0表示假,指不存在

游标

更新聚集 中的文档
语法:db.collection.update(criteria,objNew,upsert,multi)
参数阐明 :
criteria:用于设置查询条件的对象
objNew:用于设置更新内容的对象
upsert:如果记载 已经存在,更新它,否则新增一个记载 ,取值为0或1
multi:如果有多个符合条件的记载 ,是否全部更新,取值为0或1

注意:默认情况下,只会更新第一个符合条件的记载
一般情况下后两个参数分别为0,1 ,即:
db.collection.update(criteria,objNew,0,1)

将聚集 中name为user1的文档改成name为jack:
db.c1.update({name:"user1"},{name:"jack"})

$set 用来指定一个键的值,如果这个键不存在,则创建它。例如:
给name为user1的文档添加address,可以使用 下令 :
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
将name为user1的文档修改address为tj,其它键值对稳定 ,下令 为:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)

使用 $inc 将聚集 中name为user1的age加1,其它键稳定 ,
$inc表示使某个键值加减指定的数值
db.c1.update({name:"user1"},{$inc:{age:1}})

$unset 用来删除某个键
例如删除name为user1的文档中的address键,可以使用 下令 :
db.c1.update({name:”user1”},{$unset:{address:1}},0,1)

二、索引:

索引就是用来加速查询的。数据库索引与书籍的索引类似:有了索引就不需要翻遍整本书,数据库则可以直接在索引中查找,使得查找速率 能进步 几个数量级。在索引中找到条目以后,就可以直接跳转到目标文档的位置。

平凡 索引:
创建:db.collection.ensureIndex({key:1})
查看关于索引的相干 信息:db.collection.stats()
查看查询使用 索引的情况:db.collection.find({key:value}).explain()
删除索引:db.collection.dropIndex({key:1})
删除聚集 ,也会将聚集 中的索引全部删除

唯一索引:
创建:db.collection.ensureIndex({key:1},{unique:true})
查看关于索引的相干 信息:db.collection.stats()
查看查询使用 索引的情况:db.collection.find({key:value}).explain()
删除索引:db.collection.dropIndex({key:1})
删除聚集 ,也会将聚集 中的索引全部删除

三、固定聚集 (capped collection)

固定聚集 指的是事先创建而且大小固定的聚集 。

固定聚集 特性:固定聚集 很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定聚集 实用 于任何想要自动镌汰 逾期 属性的场景,没有太多的使用 限定 。

创建固定聚集 :
db.createCollection(“collectionName”,{capped:true,size:100000,max:100}); 
size指定聚集 大小,单元 为KB,max指定文档的数量

当指定文档数量上限时,必须同时指定大小。镌汰 机制只有在容量还没有满时才会依据文档数量来工作。要是容量满了,镌汰 机制会依据容量来工作。

四、备份(mongodump)和恢复(mongorestore)

MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件(即在mongodb bin目录下的下令 )

备份数据使用 下面的下令 :
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB地点 服务器地址,例如:127.0.0.1,固然 也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,固然 该目录需要提
前创建 ,在备份完成后,系统自动在dump目录下创建 一个test目录,这个
目录内里 存放该数据库实例的备份数据。

恢复数据使用 下面的下令 :
mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB地点 服务器地址
-d:需要恢复的数据库实例,例如:test,固然 这个名称也可以和备份时候的不一样,比如test2
-directoryperdb:备份数据地点 位置,例如:c:\data\dump\test

五、导入(mongoimport)和导出(mongoexport)

导出数据可以使用 下令 :
mongoexport -h dbhost -d dbname -c collectionName -o output
参数阐明 :
-h  数据库地址
-d 指明使用 的库
-c 指明要导出的聚集
-o 指明要导出的文件名

例:
mongoexport -h localhost:27017 -d test -c c4 -o d:/beifeng/c4.txt

导入数据可以使用 下令 :
mongoimport -h dbhost -d dbname -c collectionname 文件的地址...
参数阐明 :
-h  数据库地址
-d 指明使用 的库
-c 指明要导入的聚集
本地 的文件地址...

例:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt


来源:https://www.jb51.net/article/114292.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
公告
  • 问题反馈请扫码加入一期核心用户群
  • [学生认证] 认证后获取生活类板块发帖权限
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

QQ|Archiver|手机版|小黑屋|ADSKN短链接收益平台 ( 冀ICP备2021002162号 )

GMT+8, 2022-12-4 20:43 , Processed in 0.348363 second(s), 15 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表