1、MongoDB学习之基本操作

时间:2021-09-12 02:36:11
MongoDB是一种文档型数据库,属于NoSQL数据库,其文档保存方式为JSON格式 学习目标:     一、数据库常用命令     二、集合常用命令     三、文档操作基本命令   一、数据库常用命令 MongoDB数据库创建可以直接使用use db,其中db.help()可以看到db里面的很多操作: db.auth(username, password)    #表示用来进行验证用户名和密码 db.createUser(userDocument)    #创建用户 db.dropDatabase()    #删除db库 db.version()    #查看db版本   二、集合使用 > db.colletions.help() 我常用的的命令有: db.colletions.find()    #查询集合里面所有的文档 db.colletions.count( query = {}, <optional params> )    #查询集合里面所有的文档数量 db.colletions.createIndexes([keypatterns], <options>)    #创建索引 db.colletions.insert(obj)    #数据文档 db.colletions.remove(query)    #删除文档   基本操作: 1、向集合中插入数据 > db.c1.insert({name:'jack',age:60}) WriteResult({ "nInserted" : 1 })   2、循环插入数据 > for (var i=1;i<1000;i++){ ... db.c1.insert({name:'user'+i,age:i}) ... } #以上命令就可以循环插入1000条数据了   3、查询集合中所有数据 > db.c1.find()    #这个命令可以查询集合c1中的所有数据,不过mongodb默认会进行分段显示(因为全部显示出来没有任何意义)   4、查询集合中文档总条数 > db.c1.count() 1002 #可以看出集合里面有1002条数据   5、查询集合里面的文档内容(条件查询) > db.c1.find({name:'user78'})    #根据文档列进行查询 { "_id" : ObjectId("59b2ffae6ab5918117281935"), "name" : "user78", "age" : 78 }   6、查询集合里面的某个文档的列 > db.c1.find({name:'user75'},{age:1}) { "_id" : ObjectId("59b2ffae6ab5918117281932"), "age" : 75 } #可以看到我查询name值为user75的age列   7、表达式查询文档 > db.c1.find({age:{$gt:900}},{name:1}) { "_id" : ObjectId("59b2ffaf6ab5918117281c6c"), "name" : "user901" } { "_id" : ObjectId("59b2ffaf6ab5918117281c6d"), "name" : "user902" } { "_id" : ObjectId("59b2ffaf6ab5918117281c6e"), "name" : "user903" } #可以看出来我现在要查找age大于900的文档列为name的值 $gt    #表示大于 $lt    #表示小于 $ge    #表示大于等于 $le    #表示小于等于 $eq    #表示等于   8、逻辑表达式查询 > db.c1.find({name:'user501',age:501}) { "_id" : ObjectId("59b2ffae6ab5918117281adc"), "name" : "user501", "age" : 501 } #以上必须同时满足两个条件时才打印对应的结果   9、模糊查询 > db.c1.find({name:/^jack/}) { "_id" : ObjectId("59b2fcbb6ab59181172818e7"), "name" : "jack", "age" : 60 } #由以上可以看出模糊查询name的首字母是jack的文档   10、排序查询 > db.c1.find().sort({age:1}) #按照年龄升序   > db.c1.find().sort({age:-1}) #按照年龄降序   11、按照limit查询 > db.c1.find().limit(20) { "_id" : ObjectId("59b2fcbb6ab59181172818e7"), "name" : "jack", "age" : 60 } { "_id" : ObjectId("59b2fddc0b71c480ad96d78e"), "name" : "test", "age" : 444 } #查询前20条数据   12、查询10条以后的数据 > db.c1.find().skip(10) { "_id" : ObjectId("59b2ffae6ab59181172818ef"), "name" : "user8", "age" : 8 } { "_id" : ObjectId("59b2ffae6ab59181172818f0"), "name" : "user9", "age" : 9 }   13、分页查询 > db.c1.find().skip(10).limit(20) #查询10条到20条的数据   14、查询某个结果集的记录条数 > db.c1.find({age:20}).count() 100 #以上可以看到age为200的结果集的统计数     15、更新集合结果集 db.collection.update(criteria,objNew,upsert,multi)参数说明:criteria:用于设置查询条件的对象objNew:用于设置更新内容的对象upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1multi:如果有多个符合条件的记录,是否全部更新,取值为0或1 注意:默认情况下,之后更新第一个符合条件的记录一般情况下后面两个参数分别为0,1mongodb更新修饰器$set #用来指定一个键并更新键值,若键不存在并创建$inc #用来对文档的某个值为数字型进行递增或者递减 15.1根据条件进行update修改操作> db.c1.update({name:'test1'},{$set:{age:40}},0,1)WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.c1.find({name:'test1'}){ "_id" : ObjectId("59b30fd76ab5918117281ccf"), "name" : "test1", "age" : 40 }#由上可以看到条件为test1的age列的值修改为40   15.2根据条件对结果集age计算 > db.c1.update({name:'test1'},{$inc:{age:-1}},0,1) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.c1.find({name:'test1'}) { "_id" : ObjectId("59b30fd76ab5918117281ccf"), "name" : "test1", "age" : 39 } #由上可以看出age减去1之后变成39     15.3撤销某个列 > db.c1.update({name:'test1'},{$unset:{age:1}},0,1) 1、MongoDB学习之基本操作 1、MongoDB学习之基本操作 #由上可以看出来文档列age被撤销了     > db.c1.update({name:'haha'},{$unset:{age:50}},0,1)    #删除对于的值,原理应该是一样的   16、清除文档 语法: db.c1.remove(query)   16.1更加条件删除文档结果集 > db.c1.remove({name:'haha'})   16.2直接清除整个文档 > db.c1.remove({}) WriteResult({ "nRemoved" : 1101 }) #由上可以看出直接删除完了   总结:mongodb的基础命令还有很多,需要认真的学习语法及用法,多练习。