MongoDB
Posted kanglun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB相关的知识,希望对你有一定的参考价值。
1 概念 2 3 RDBMS(关系型数据库管理系统) MongoDB 4 Database(数据库) Database(数据库) 5 Table(表) Collection(集合) 6 Record(记录) Document(文档) 7 8 9 10 库级操作 11 12 use DATABASE #切换/创建库 13 show dbs #查看所有数据库(空库不会显示) 14 db.dropDatabase() #删除当前数据库 15 db #查看当前所在库 16 17 18 19 集合操作 20 21 db.createCollection(name, options) #创建集合 用引号引起来 22 capped:类型为boolean,如果为true则为创建一个固定大小的集合,当集合中的数据条目达 到最大时自动覆盖以前的条目。 23 size:指定集合字节最大值,当capped为true时需要指定。单位为byte 24 max:指定集合中数据的最大条数。 25 db.createCollection( 26 "BizUser", 27 {capped:1,autoIndexID:1,size:6142800,max:10000} 28 ) 29 30 show collections #查看当前数据库的集合 31 32 db.集合名称.drop() #删除集合 33 34 35 36 文档操作 37 38 插入 39 40 db.集合名称.insert(document) #插入文档, 集合不存在会自动创建, 不能插入重复id的数据 41 42 db.student.insert({_id:1, name:‘句号‘, age:18}) 43 44 45 db.student.insert([ 46 {name:‘juhao‘, sex:‘男‘, age:18}, 47 {name:‘nanbei‘, sex:‘男‘, age:19}, 48 {name:‘budong‘, sex:‘男‘, age:20}, 49 ]) 50 51 查询 52 53 db.集合名称.find() #查询所有 54 db.集合名称.find().pretty() #结构化显示 55 56 db.集合.find({name:10}).pretty() where name = 10 57 db.集合.find({name:{$ne:10} }).pretty() where name != 10 58 db.集合.find({name:{$gt:10} }).pretty() where name > 10 59 db.集合.find({name:{$lt:10} }).pretty() where name < 10 60 #后面加个e就是加等于 61 62 63 64 #and逻辑 65 {$and:[{expression1}, {expression1}, ...] } 66 #or逻辑 67 {$or:[{expression1}, {expression1}, ...] } 68 69 70 #where sex=‘男‘ and age > 18 71 db.table.find({ 72 $and:[ 73 {sex:‘男‘}, {age:{$gt:18}} 74 ] 75 }) 76 77 78 #where sex=‘女‘ or age =18 79 db.table.find({ 80 $or:[ 81 {sex:‘女‘}, {age:18} 82 ] 83 }) 84 85 86 #where (sex=‘女‘ and age=18) or (sex=‘男‘ and age>18) 87 db.table.find({ 88 $or:[ 89 {$and:[{sex:‘女‘}, {age:18}]}, 90 {$and:[{sex:‘男‘}, {age:{$gt:18}}]} 91 ] 92 }) 93 94 95 96 更新 97 98 db.table.update({sex:‘男‘},[{age:20}) #更新第一条找到的文档全部值 无multi 99 100 db.table.update({sex:‘男‘}, {$set:{age:666, agee:6666}}) #修改第一条找到的文档,不存在就添加 101 102 db.table.update({sex:‘男‘}, {$set:{sex:‘女‘}}, {multi:true}) #更新全部 103 104 105 106 删除 107 108 db.集合名称.remove( <query>, <justOne> ) 109 db.table.remove({age:18}) #删除所有满足条件的 110 db.table.remove({sex:‘男‘}, {justOne:true}) #删除一条 111 112 113 114 mongodb配置 115 116 vim /etc/mongodb.conf 117 dbpath #数据存放的地址 118 logpath #日志存放的地址 119 bind_ip = 0.0.0.0 #监听IP 120 auth = True #权限认证 121 122 123 124 mongodb权限 125 126 MongoDB默认设置为无权限访问限制 127 128 #进入user admin 129 130 #创建管理员用户,用来管理用户,可以通过这个角色来创建、删除用户,用户只具有管理用户和角色的权限。 131 db.createUser({ 132 user:‘juha‘, 133 pwd:‘123456‘, 134 roles:[{role:"userAdminAnyDatabase", db:"admin"}] 135 }) 136 #role:指定用户的角色,db指定库 137 138 139 db.createCollection(‘student‘) #创建一个库 140 use student #进入 141 142 #给该库添加用户 143 db.createUser({ 144 user:‘test‘, 145 pwd:‘test‘, 146 roles:[{ 147 role:‘readWrite‘, 148 db:‘student‘ 149 }] 150 }) 151 152 153 show users #查看当前库下的用户 154 db.dropUser(‘username‘) #删除某个用户 155 db.dropAllusers() #删除当前库的所有用户 156 db.getUsers() #查询所有用户 157
以上是关于MongoDB的主要内容,如果未能解决你的问题,请参考以下文章
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项
在 Spring MongoDB 的 ReplaceRoot 管道阶段使用 $mergeObjects