mongobdb操作数据库

安装 mongodb

  点击安装
    注意 mongodb compass 千万不要勾选

  如何启动mongodb
    1,假设你安装在 D:mongo
      1,直接进入这个目录,进入 bin目录 在这个目录下 打开命令行,运行mongod
      2,想任意位置 启动mongodb
          需要添加环境变量
            计算机->属性->高级系统设置->环境变量->系统变量->path
             环境变量语法 ;分割的多个环境变量
              末尾加一个 ; D:mongo\bin\添加进入 就可以了
        此时 win+r cmd 打开 默认 c盘 报错  
          此时 数据库 自动放在 c盘 下 data目录中的 db目录
          但是我们没有这个目录,需要手动创建来解决

mongodb

非关系型数据  存储数据格式 就是json  mongodb redis

关系型数据:mysql oracle

对比
        关系型                               非关系型  json

        数据库(database) (数据仓库)       数据库(database)
        表     (table)                        collection 集合  [{},{},{}]
        行     row                            document 文档 json
        列 字段  col                           key

mongodb 原生sql 语句

show dbs  查看有哪些数据库
use 数据库 切换到这个数据库
show collections 查看当前数据库下 有哪些 集合 (前提 你得先切换到目标数据库)
一下 所有的操作 都需要切换到 目标数据库才能执行

db.createCollection("名字")  创建一个集合
db.集合名.drop()
以上命令 都不重要(这些操作 我们一般会在可视化软件中操作)

下面 增删改查 才是重点

robot 3T mongodb可视化

使用 InteliShell 进行增删改查操作

查看文档

最简单查看文档的方法就是find(),会检索集合中所有的文档结果

db.集合名.find()  

要以格式化的方式显示结果,可以使用pretty()方法。

db.集合名.find().pretty()

1.固值寻找

寻找age集合里面所有含有属性值为wscats的文档结果,相当于where name = 'wscats'

db.age.find({name:"wscats"})

2.范值寻找

操作 语法 示例 等效语句
相等 {:} db.age.find({"name":"wscats"}).pretty() where name = ‘wscats’
小于 {:{$lt:}} db.age.find({"likes":{$lt:50}}).pretty() where likes < 50

注意:小于后面的值要用大括号阔起来

小于等于 {:{$lte:}} db.age.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {:{$gt:}} db.age.find({"likes":{$gt:50}}).pretty() where likes > 50
大于等于 {:{$gte:}} db.age.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {:{$ne:}} db.age.find({"likes":{$ne:50}}).pretty() where likes != 50

3.AND和OR寻找

AND

在find()方法中,如果通过使用将它们分开传递多个键,则mongodb将其视为AND条件。 以下是AND的基本语法是一个数组

寻找_id为1并且name为wscats的所有结果集

db.age.find(
{
   $and: [
      {"_id": 1}, {"name": "wscats"}
   ]
}
)
OR

在要根据OR条件查询文档,需要使用$or关键字。以下是OR条件的基本语法

寻找name为corrine或者name为wscats的所有结果集

db.age.find(
{
   $or: [
      {"name": "corrine"}, {“name“: "wscats"}
   ]
}
)
AND和OR等结合

相当于语句where title = "wscats" OR ( title = "corrine" AND _id < 5)

db.age.find({
$or: [{
 "title": "wscats"
}, {
 $and: [{
   "title": "corrine"
 }, {
   "_id": {
     $lte: 5
   }
 }]
}]
})

插入文档

文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON

要将数据插入到mongodb集合中,需要使用mongodb的insert()save()方法。

db.集合名.insert(document)

比如我们可以插入以下数据

db.wscats.insert({

title: 'MongoDB Tutorials', 
description: 'node_tutorials',
by: 'Oaoafly',
url: 'https://github.com/Wscats/node-tutorial',
tags: ['wscat','MongoDB', 'database', 'NoSQL','node'],
num: 100,
})

也可以支持插入多个,注意传入的是数组形式

db.wscats.insert([{
_id: 100,
title: ‘Hello’
},{
_id: 101,
title: ‘World’
}])

在插入的文档中,如果不指定_id参数,那么mongodb会为此文档分配一个唯一的ObjectId
要插入文档,也可以使用db.post.save(document)。如果不在文档中指定_id,那么save()方法将与insert()方法一样自动分配ID的值。如果指定_id,则将以save()方法的形式替换包含**_id**的文档的全部数据。

db.wscats.save({
_id: 111,
title: 'Oaoafly Wscats', 
})

更新文档

1.update()方法

寻找第一条title为wscats的值,并且更新值title为corrine和age为12

db.age.update({
'title': 'wscats'
}, {
$set: {
 'title': 'corrine',
 'age': 12
}
})

默认情况下,mongodb只会更新一个文档。要更新多个文档,需要将参数multi设置为true,还可以配合find方法里面的各种复杂条件判断来筛选结果,然后更新多个文档

寻找所有title为wscats的值,并且更新值title为corrine和age为12

db.age.update({
'title': 'wscats'
}, {
$set: {
 'title': 'corrine',
 'age': 12
}
}, {
multi: true
})

2.save()方法

_id主键为3的文档,覆盖新的值,注意_id为必传

db.age.save({
'_id':3,
'title': 'wscats'
})

删除文档

删除主键_id为3的文档,默认是删除多条

db.age.remove({
'_id':3
})

建议在执行remove()函数前先执行find()命令来判断执行的条件是否正确

如果你只想删除第一条找到的记录可以设置justOne为1,如下所示

db.age.remove({...},1)

全部删除

db.age.remove({})

Limit与Skip方法 (结合find方法使用)

Limit

如果你需要在mongodb中读取指定数量的数据记录,可以使用mongodb的Limit方法,limit()方法接受一个数字参数,该参数指定从mongodb中读取的记录条数。

db.age.find().limit(数量)
Skip

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

db.age.find().limit(数量).skip(数量)
//skip()方法默认值为0
current 哪一页  当前页
pageSize 一页多少条

100   10    1
10  10    2
20  10    3
db.stu.find().skip((current-1)*pageSize).limit(pageSize)

所以我们在实现分页的时候就可以用limit来限制每页多少条数据(一般固定一个值),用skip来决定显示第几页(一个有规律变动的值)

排序

在mongodb中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排列,而-1是用于降序排列。

1 升序排列
-1 降序排列

db.集合名.find().sort({键值(属性值):1})

age集合表重新根据_id主键进行降序排列

db.age.find().sort({
"_id": -1
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值