MongoDB常用操作和基本知识有哪些
发布时间:2023-09-19 15:50:01 所属栏目:系统 来源:
导读:一、增删改查
查看当前数据库中所有的集合,使用命令
show collections 或使用
show tables
创建集合有两种方式,显示创建和隐式创建
显示创建可以使用命令 db.createCollection(“集合名称
查看当前数据库中所有的集合,使用命令
show collections 或使用
show tables
创建集合有两种方式,显示创建和隐式创建
显示创建可以使用命令 db.createCollection(“集合名称
一、增删改查 查看当前数据库中所有的集合,使用命令 show collections 或使用 show tables 创建集合有两种方式,显示创建和隐式创建 显示创建可以使用命令 db.createCollection(“集合名称") 隐式创建可以使用命令 db.集合名称.insert({}), 指创建集合并同时向集合中插入数据, 例如:db.customer.insert({name:”jack”}) 向集合添加文档 使用命令 db.集合名称.insert({}),例如: db.user1.insert({name:”jack”,age:20}) 删除集合中的文档 使用命令 db.集合名称.remove({删除条件}), 不加删除条件为删除集合中的所有文档: 例如,删除c1集合中的所有文档 db.c1.remove() 删除c1集合中name为user1的文档 db.c1.remove({name:”user1”}) 查询集合中的文档 db.集合名称.find({条件}) 或者使用 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 db.collection.find({field:{$lt:value}}); //大于等于: field >= value db.collection.find({field:{$gte:value}}); //小于等于: field db.collection.find({field:{$lte:value}}); //不等于: field != value db.collection.find({field:{$ne:value}}); 查询集合中的文档 ,统计(count)、排序(sort)、分页(skip、limit) db.customer.count(); db.customer.find().count(); db.customer.find({age:{$lt:5}}).count(); db.customer.find().sort({age:1}); 降序-1 db.customer.find().skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3).count(); db.customer.find().sort({age:-1}).skip(2).limit(3).count(0); 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 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐