mongodb linux增删改查操作
2021/6/5 19:21:00
本文主要是介绍mongodb linux增删改查操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mongodb 安装 [root@hadoop103 software]# tar -zxf mongodb-linux-x86_64-rhel70-4.0.24.tgz [root@hadoop103 software]# mv mongodb-linux-x86_64-rhel70-4.0.24 mogodb [root@hadoop103 software]# cd mongodb 新建数据库目录: /root/software/mongodb/data/db 新建数据库日志:/root/software/mongodb/log [root@hadoop103 mongodb]# mkdir -p ./data/db [root@hadoop103 mongodb]# mkdir -p ./log [root@hadoop103 mongodb]# vi ./mongo.conf systemLog: destination: file path: "/root/software/mongodb/log/mongod.log" logAppend: true storage: dbPath: "/root/software/mongodb/data/db" journal: enabled: true processManagement: fork: true net: bindIp: localhost,192.168.107.103 port: 27017 // 启动mongo [root@hadoop103 mongodb]# ./bin/mongod -config ./mongo.conf //查看mongo服务是否起 不是用jps [root@hadoop103 mongodb]# ps -ef | grep mongo //进入到shell [root@hadoop103 mongodb]# ./bin/mongo > show dbs; admin 0.000GB config 0.000GB local 0.000GB > use kb11 //新建库 switched to db kb11 > show dbs; admin 0.000GB config 0.000GB local 0.000GB > db.createCollection("students") //新建表 之后才能看到库 显示创建 隐式创建 直接插入数据就有表 { "ok" : 1 } > show dbs admin 0.000GB config 0.000GB kb11 0.000GB local 0.000GB > use kb11 switched to db kb11 > show tables; //查看表 kb09 students teacher > show collections //查看表 kb09 students teacher > db.students.find() //查看具体表内容 >db.dropDatabase("kb11") //删除库 > db.abc.insert({"title":"aa","content":"bb","name":"cc","userid":"0001","nick":"kk"}) // 插入json字符串 掺入单条数据 WriteResult({ "nInserted" : 1 }) //影响行数 1 > db.abc.find() //查看表内容 ,可以看到 _id 自动生成 也是自己写 { "_id" : ObjectId("60b97730b96d258b1bff0910"), "title" : "aa", "content" : "bb", "name" : "cc", "userid" : "0001", "nick" : "kk" } >db.abc.count() // 查询表里的数量 >1 > db.kb09.drop() //删除表 true > show dbs admin 0.000GB config 0.000GB kb11 0.000GB local 0.000GB > use kgcdsj //使用 kgcdsj 数据库 (如果有数据库选择,没有创建后选择) switched to db kgcdsj > db kgcdsj // 下面数据主题为文章 有两行是同一个作者 (主键,标题,内容,阅读量,名字,编号,别名) // 隐式创建表students 插入多条数据 try{ db.students.insertMany( [ {"_id" :"1","title":"aa","content":"good","readNum":21,"name":"a1","userid":"0001","nick":"gree"}, {"_id" :"2","title":"bb","content":"hi","readNum":28,"name":"b1","userid":"0002","nick":"ant"}, {"_id" :"3","title":"cc","content":"ok","readNum":27,"name":"c1","userid":"0003","nick":"plan"}, {"_id" :"4","title":"dd","content":"no","readNum":29,"name":"a1","userid":"0001","nick":"gree"}, {"_id" :"5","title":"ee","content":"yes","readNum":22,"name":"e1","userid":"0004","nick":"dog"} ] ) }catch(e){ print(e) } > db.students.findOne({"name":"a1"}) // 查询一条内容 { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gre } > db.students.find({"name":"a1") //查询满足条件的所有内容 { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } > db.students.find({"name":"a1","readNum":21}) //多条件查询 { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } // 多条件查询显示title,title:1 _id 默认显示 不显示:_id:0 > db.students.find({"name":"a1","content":"no"},{title:1}) { "_id" : "4", "title" : "dd" } > db.students.find({"name":"a1","content":"no"},{"title":1}) { "_id" : "4", "title" : "dd" } // > db.students.find({"name":"a1","content":"no"},{title:1,readNum:1}) { "_id" : "4", "title" : "dd", "readNum" : 29 } > db.students.find({"name":"a1","content":"no"},{title:1,readNum:1,_id:0}) { "title" : "dd", "readNum" : 29 } //第一个{}不给条件,第二个{}中给要显示的列 查询全部,只显示title,content列 > db.students.find({},{title:1,content:1}) { "_id" : "1", "title" : "aa", "content" : "good" } { "_id" : "2", "title" : "bb", "content" : "hi" } { "_id" : "3", "title" : "cc", "content" : "ok" } { "_id" : "4", "title" : "dd", "content" : "no" } { "_id" : "5", "title" : "ee", "content" : "yes" } > db.students.find({},{title:1,content:1,_id:0}) { "title" : "aa", "content" : "good" } { "title" : "bb", "content" : "hi" } { "title" : "cc", "content" : "ok" } { "title" : "dd", "content" : "no" } { "title" : "ee", "content" : "yes" } //指定主键删除 > db.students.remove({"_id":"5"}) WriteResult({ "nRemoved" : 1 }) //删除指定内容 > db.students.remove({"name":"a1"}) WriteResult({ "nRemoved" : 2 }) //根据指定多条件删除 > db.students.remove({"content":"ok","name":"c1"}) WriteResult({ "nRemoved" : 1 }) // 根据条件查询 统计数量 > db.students.find({name:"a1"}).count(); 2 // 限制两行 查询出前两行 --分页操作 > db.students.find().limit(2) { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "2", "title" : "bb", "content" : "hi", "readNum" : 28, "name" : "b1", "userid" : "0002", "nick" : "ant" } // 跨越两行 查询 3 4 行 > db.students.find().limit(2).skip(2) { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } // 对查询结果进行排序 指定排序的列,1表示升序 sort({readNum:1}) -1 表示降序 sort({readNum:-1}) > db.students.find().sort({readNum:1}) { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "2", "title" : "bb", "content" : "hi", "readNum" : 28, "name" : "b1", "userid" : "0002", "nick" : "ant" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } //查询阅读量最高的作者 > db.students.find({},{name:1}).sort({readNum:-1}).limit(1) { "_id" : "4", "name" : "a1" } //按userid升序 同样的userid 再按照readNum 降序 > db.students.find().sort({userid:1,readNum:-1}) { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "2", "title" : "bb", "content" : "hi", "readNum" : 28, "name" : "b1", "userid" : "0002", "nick" : "ant" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } // 查询content 包含 "o" 的 > db.students.find({content:/o/}) { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } //查询content 以 "o" 开头的 > db.students.find({content:/^o/}) { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } $gt $lt $gte $lte $ne //查询readNum阅读量 大于25 小于29 的数据 > db.students.find({readNum:{$gt:25,$lt:29}}); { "_id" : "2", "title" : "bb", "content" : "hi", "readNum" : 28, "name" : "b1", "userid" : "0002", "nick" : "ant" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } //查询readNum阅读量 大于25 小于30 作者名字为a1 的数据 > db.students.find({readNum:{$gt:25,$lt:30},name:"a1"}); { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } $in $or $and //查询userid为 0001 和 0002 的数据 $in > db.students.find({userid:{$in:["0001","0002"]}}); { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1" , "userid" : "0001", "nick" : "gree" } { "_id" : "2", "title" : "bb", "content" : "hi", "readNum" : 28, "name" : "b1", "userid" : "0002", "nick" : "ant" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } //查询readNum阅读量 大于21 并且 小于25 $and > db.students.find({$and:[{readNum:{$gt:21}},{readNum:{$lt:25}}]}) { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } //查询name为c1 或者 readNum 小于25 $or > db.students.find({$or:[{name:"c1"},{readNum:{$lt:25}}]}) { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } //全部修改 查询到的数据除_id 不加$set 全部修改 > db.students.update({title:"bb"},{content:"hihihi"}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.students.find() { "_id" : "1", "title" : "aa", "content" : "good", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "2", "content" : "hihihi" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } //局部修改 $set > db.students.update({title:"aa"},{$set:{content:"hihihi"}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.students.find() { "_id" : "1", "title" : "aa", "content" : "hihihi", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "2", "content" : "hihihi" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "gree" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } // update 只修改一条 > db.students.update({name:"a1"},{$set:{nick:"black"}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) //updateMany修改多条 > db.students.updateMany({name:"a1"},{$set:{nick:"black"}}) { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 1 } > db.students.find(); { "_id" : "1", "title" : "aa", "content" : "hihihi", "readNum" : 21, "name" : "a1", "userid" : "0001", "nick" : "black" } { "_id" : "2", "content" : "hihihi" } { "_id" : "3", "title" : "cc", "content" : "ok", "readNum" : 27, "name" : "c1", "userid" : "0003", "nick" : "plan" } { "_id" : "4", "title" : "dd", "content" : "no", "readNum" : 29, "name" : "a1", "userid" : "0001", "nick" : "black" } { "_id" : "5", "title" : "ee", "content" : "yes", "readNum" : 22, "name" : "e1", "userid" : "0004", "nick" : "dog" } //update 后面 多加条件 multi:true 也能更改多条 > db.students.update({name:"a1$set:{nick:"tom"}},{multi:true}) WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 }) //创建索引 > db.students.createIndex({userid:1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } // 获取索引 > db.students.getIndexes() [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "kgcdsj.students" }, { "v" : 2, "key" : { "userid" : 1 }, "name" : "userid_1", "ns" : "kgcdsj.students" } ] // > db.students.createIndex({userid:1,readNum:-1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 2, "numIndexesAfter" : 3, "ok" : 1 } // 删除索引 给索引名 > db.students.dropIndex("userid_1_readNum_-1") { "nIndexesWas" : 3, "ok" : 1 } // 删除索引 升序索引userid > db.students.dropIndex({userid:1}) { "nIndexesWas" : 2, "ok" : 1 } // 删除所有索引 > db.students.dropIndexes() { "nIndexesWas" : 2, "msg" : "non-_id indexes dropped for collection", "ok" : 1 } --------------------------------------------------------------------------- // 根据查询计划 看出 find的时候是 "stage" : "COLLSCAN" 全局扫描 > db.students.find({userid:"0004"}).explain() { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "kgcdsj.students", "indexFilterSet" : false, "parsedQuery" : { "userid" : { "$eq" : "0004" } }, "winningPlan" : { "stage" : "COLLSCAN", "filter" : { "userid" : { "$eq" : "0004" } }, "direction" : "forward" }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "hadoop103", "port" : 27017, "version" : "4.0.24", "gitVersion" : "9df1b3a80f39cf7e7ccd6264a207518426a524f6" }, "ok" : 1 } // 创建一个索引之后再explain > db.students.createIndex({userid:1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } // 创建索引之后再 explain 可以看到 "stage" : "IXSCAN" 按照索引查找 加快查询速度 > db.students.find({userid:"0004"}).explain() { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "kgcdsj.students", "indexFilterSet" : false, "parsedQuery" : { "userid" : { "$eq" : "0004" } }, "winningPlan" : { "stage" : "FETCH", "inputStage" : { "stage" : "IXSCAN", "keyPattern" : { "userid" : 1 }, "indexName" : "userid_1", "isMultiKey" : false, "multiKeyPaths" : { "userid" : [ ] }, "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "userid" : [ "[\"0004\", \"0004\"]" ] } } }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "hadoop103", "port" : 27017, "version" : "4.0.24", "gitVersion" : "9df1b3a80f39cf7e7ccd6264a207518426a524f6" }, "ok" : 1 }
这篇关于mongodb linux增删改查操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南