资讯专栏INFORMATION COLUMN

MongoDB数据库

qylost / 905人阅读

摘要:是一个非关系型数据库存储形式为键值对水平扩展很容易常作为缓存数据库来使用的存储文档称之为类似对象字段值可以包含其他的文档数组以及文档数组和的概念解析概念的概念解释说明数据库表集合行文档列域表关联主键手动添加自动创建一进入数据库的目录输入启动

Mongodb

是一个非关系型数据库 存储形式为键值对 水平扩展很容易 常作为缓存数据库来使用

Mongodb的存储文档称之为 BSON 类似json对象 字段值可以包含其他的文档 、数组 以及文档数组

MongoDB和mysql的概念解析
sql概念 mongodb的概念 解释/说明
database database 数据库
table collection 表/集合
row document 行/文档
column field 列/域
table join 表关联
primary key primary key 主键手动添加/自动创建
一、进入mongodb数据库 (1) cd mongo的bin目录 (2) 输入 启动服务 并选择创建数据库的位置
mongod.exe --dbpath=D:db
(3) 再打开一个终端

cd mongodb的bin目录

mongo.exe

(4) 开放端口让其他人连接,需要关闭防火墙

mongod.exe --bind_ip 0.0.0.0

(5) 连接带密码的mongodb

mongo ip:port/database -u username -p password
mongo database --host x.x.x.x --port 31935 -u username -p password

二、数据库的操作
(1) 查看所有数据库

show dbs

(2) 创建/切换数据库

use 数据库名

(3) 查看当前所在的数据库

db.getName()

(4) 创建集合

db.createCollection(集合名)

db.createCollection("user")

db.集合名.insert(文档)

db.goods.insert({"goodsname":"牛奶"})

(5) 查看所有的集合

show collections

(6) 删除集合

db.collection_name.drop()

如果遇到命名奇怪的集合,如数字名字的集合无法删除,可以使用如下
db.getCollection("123").drop()

注意:

mongodb区分大小写

(7) 修改集合名字

db.old_name.renameCollection("new_name")

三、数据的添加 INSERT
(1) insert 插入一条文档

db.集合名.insert({文档})

db.user.insert({"name":"张三","age":18})

(2) insert插入多条文档

列表中存放多条文档

db.user.insert([{"name":"李四","age":20},{"name":"王五","age":25}])

3.XX 新的插入文档
(1) 插入一条文档

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(

, 查询的条件

, 要更改的东西

​ {

bool值 如果修改的数据查询不到 当前数据是否作为新数据插入 默认Flase 不插入

bool 值 如果匹配到多条 默认是更改一条 Flase 改为True则全部更改

​ }

)

update: $set $inc 俩个更新操作符

$set 直接修改

$inc 累加修改

实例

不使用更新操作符 会将文档的内容除了_id以外的内容替换成当前update的内容

db.user.update({"name":"张三"},{"age":38})

使用更新操作符号 $set 将年龄直接修改为30 其余当前文档的内容不会发生改变

db.user.update({"name":"李四"},{$set:{"age":30}})

使用更新操作符号 $inc 将年龄值累加修改30 其余当前文档的内容不会发生改变

db.user.update({"name":"李四"},{$inc:{"age":30}})

upsert参数的使用

db.user.update({"name":"张三"},{$set:{"age":30}},true)

{ "_id" : ObjectId("5b0f68068829170dea936f21"), "name" : "张三", "age" : 30 }
multi 的使用
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 - MongoDB的简单安装

    摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...

    notebin 评论0 收藏0
  • 聊聊MongoDB - MongoDB的简单安装

    摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...

    whatsns 评论0 收藏0
  • 聊聊MongoDB - MongoDB的简单安装

    摘要:安装全过程环境基本情况我是在电脑下安装的系统位,这个也是导致我安装的时候出现异常提示,原因可能是的版本是位的,我应该再找一个位的,但事实上我找不到。 简述 之前讲了一些关于MongoDB的知识,出人意料的受欢迎,也让我很吃惊,所以今天打算分享一些我在自己计算机的虚拟机的centos系统下安装MongoDB的经历,希望感兴趣的你们在安装MongoDB的时候出现问题可以来看看我是怎么安装的...

    diabloneo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<