摘要:是一个非关系型数据库存储形式为键值对水平扩展很容易常作为缓存数据库来使用的存储文档称之为类似对象字段值可以包含其他的文档数组以及文档数组和的概念解析概念的概念解释说明数据库表集合行文档列域表关联主键手动添加自动创建一进入数据库的目录输入启动
Mongodb
是一个非关系型数据库 存储形式为键值对 水平扩展很容易 常作为缓存数据库来使用
Mongodb的存储文档称之为 BSON 类似json对象 字段值可以包含其他的文档 、数组 以及文档数组
sql概念 | mongodb的概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 表/集合 |
row | document | 行/文档 |
column | field | 列/域 |
table join | 表关联 | |
primary key | primary key | 主键手动添加/自动创建 |
mongod.exe --dbpath=D:db(3) 再打开一个终端
cd mongodb的bin目录
mongo.exe
(4) 开放端口让其他人连接,需要关闭防火墙mongod.exe --bind_ip 0.0.0.0
(5) 连接带密码的mongodbmongo ip:port/database -u username -p password
mongo database --host x.x.x.x --port 31935 -u username -p password
show dbs
use 数据库名
db.getName()
db.createCollection(集合名)
db.createCollection("user")
db.集合名.insert(文档)
db.goods.insert({"goodsname":"牛奶"})
show collections
db.collection_name.drop()
如果遇到命名奇怪的集合,如数字名字的集合无法删除,可以使用如下
db.getCollection("123").drop()
注意:
mongodb区分大小写
db.old_name.renameCollection("new_name")
三、数据的添加 INSERTdb.集合名.insert({文档})
db.user.insert({"name":"张三","age":18})
列表中存放多条文档
db.user.insert([{"name":"李四","age":20},{"name":"王五","age":25}])
3.XX 新的插入文档db.collection.insertOne()
db.user.insertOne({"name":"赵六","age":30})
(2) 插入多条文档db.collection.insertMany()
db.user.insertMany([{"name":"赵六","age":30},{"name":"王五","age":22}])
插入多条文档 不管是insert还是insertMany 都需要使用列表
insertMany 如果不适用列表 则报错
insert 插入多条不适用列表 则插入成功数据为第一条文档
四、update修改主体结构
db.collection.update(
{
}
)
$set 直接修改
$inc 累加修改
实例
db.user.update({"name":"张三"},{"age":38})
db.user.update({"name":"李四"},{$set:{"age":30}})
db.user.update({"name":"李四"},{$inc:{"age":30}})
upsert参数的使用
db.user.update({"name":"张三"},{$set:{"age":30}},true)
{ "_id" : ObjectId("5b0f68068829170dea936f21"), "name" : "张三", "age" : 30 }
db.user.update({"name":"赵六"},{$set:{age:10}},{multi:true})
db.user.update({"name":"赵六"},{$set:{age:18}},true,true)
3.xx以后的修改db.collection.updateOne()
实例
db.user.updateOne({"age":18},{$set:{age:10}})
db.collection.updateMany()
实例
db.user.updateMany({"name":"赵六"},{$set:{age:12}})五、remove 删除
主体结构
db.collection.remove(, 条件 justOne, bool值 默认flase 全部删除 )
实例
db.user.remove({"name":"赵六"}) WriteResult({ "nRemoved" : 2 })
db.user.remove({"name":"王五"},true) db.user.remove({"name":"王五"},1)
db.user.remove({})3.xx版本以后的删除
db.collection.deleteOne()
db.user.deleteOne({"name":"李四"}) { "acknowledged" : true, "deletedCount" : 1 }
db.collection.deleteMany()
db.user.deleteMany({"name":"李四"}) { "acknowledged" : true, "deletedCount" : 2 }六、查询 (1) find查所有
db.collection.find()
(2) 哪些字段显示与隐藏指定显示某些字段 字段名:true
db.user.find({},{name:true}) 只显示name和id db.user.find({},{name:true,age:true}) 显示name和age和id字段
指定除了某个字段以外的字段都显示
db.user.find({},{name:false,age:false})
注意:
自己定义的域 只能设置显示 或者不显示 不能一起设置
但是系统的id可以 因为不管你给其他域设置true或者false都会显示
只有这种可以
db.user.find({},{"_id":false,age:true})(3) findOne 只查询一条
db.user.findOne({"age":28})(4) count 统计
db.user.find().count() db.user.find({age:18}).count()(5) pretty 展开查看
db.user.find().pretty()(6) 查询条件符
$gt 大于 db.user.find({age:{$gt:18}}) $gte 大于等于 db.user.find({age:{$gte:18}}) $lt 小于 db.user.find({age:{$lt:28}}) $lte 小于等于 db.user.find({age:{$lte:28}}) {key:val} 等于 db.user.find({age:28}) $ne 不等于 db.user.find({age:{$ne:28}}) /数据/ 模糊查询 db.user.find({name:/张/}) /^数据/ 以...作为开头 db.user.find({name:/^张/}) /数据$/ 以...作为结尾 db.user.find({name:/张$/}) $in 在...范围内 db.user.find({"age":{$in:[18,20]}}) $nin 不在...范围内 db.user.find({"age":{$nin:[18,20]}}) 按照id来查询 db.user.find({"_id" : ObjectId("5b0fabcda14d4a753f75edc5")})(7) and查询
db.user.find({"name":"张三","age":28}) db.user.find({"age":{$gt:18,$lt:28}}) #名字包含李的,并且年龄大于18并且小于28 只显示name字段 db.user.find({"name":/李/,"age":{$gt:18,$lt:28}},{"_id":false,"name":true})(8) $or查询
db.collection.find({$or:[条件1,条件2...]})
查询年龄大于18 或者 小于28
db.user.find({$or:[{age:{$gt:18}},{age:{$lt:28}}]}) db.user.find({$or:[{name:/张/},{name:/三/}]})(9) and 和 or的一起使用
db.user.find({名:值...,$or:[{条件1},{条件2}...]}) select * from user where name like "%三%" and (age=18 or age=28)(10) limit 取值
db.collection.find().limit(num)
db.user.find().limit(2)
注意:
从头取出 num条
(11) skip 跳过num条db.collection.find().skip(num)
db.user.find().skip(2)
(12) limit 和 skip的结合使用db.collection.find().skip(num).limit(num)
db.user.find().skip(2).limit(2)(14) sort 排序
db.collection.find().sort({key:1|-1}) #升序或者降序
db.user.find().sort({age:-1}).limit(1)七、数据库的删除
删除之前最好use一下
db.dropDatabase()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/19265.html
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...
阅读 2982·2021-11-22 13:54
阅读 819·2021-11-04 16:08
阅读 4208·2021-10-11 11:09
阅读 3558·2021-09-22 16:05
阅读 853·2019-08-30 15:54
阅读 369·2019-08-30 15:44
阅读 579·2019-08-30 14:05
阅读 1000·2019-08-30 12:46