数据库系列之——mongoDB的基础操作

前言:

Mongodb,基于分布式文档存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式文档型数据库,是当前NoSQL数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

use admin    切换到admin数据库

//创建用户
db.createUser({  
 user:"admin",
 pwd:"admin",
 roles:[  
  {  
     role:"root",
     db:"admin"
  }
 ],
 mechanisms:[  
  "SCRAM-SHA-1"
 ]
})


use admin        切换到admin

db.auth("admin","admin")        //身份认证

show dbs;        //查看所有数据库

db.dropDatebase()    //删除数据库

//切换到xiaoniu数据库
use xiaoniu

//创建用户
db.createUser({  
 user:"xiaoniu",
 pwd:"123468",
 roles:["readWrite"],
 mechanisms:[  
  "SCRAM-SHA-1"
 ]
})

//查看本数据库下的所有用户
show users


use xiaoniu        //使用xiaoniu数据库

db.auth("xiaoniu","123468")        //认证(不需要也行)

db.createCollection("bike")        //创建bike表

//创建固定集合(表)person,大小12800KB,文档(行数)最大个数为1000个
db.createCollection("person",{
capped:true,
autoIndexId:true,
size:12800,
max:1000
})

db.bike.drop()        //删除bike表

show tables\collections        //显示所有表

db.bike.insert({"bikebo":10010,"status":0})        //新增一条数据(biek集合若不存在,则自动创建)

db.bike.find()        //查找所有数据

db.bike.deleteOne({"status":0,"bikeno":10010})        //删除一条数据


//向col集合中插入一条数据
db.col.insert({
title: "MongoDB 教程",
description: "MongoDB 是一个NOSQL数据库",
by: "菜鸟教程",
url: "http://www.runoob.com",
tags: ['mongodb','database','NoSQL'],
likes: 100
})


//一次插入多条数据
var res = db.col.insertMany([{"d":300},{"e":400}])
//执行变量内容
res
执行显示结果:
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5c4b10d451fa73bcaec25103"),
                ObjectId("5c4b10d451fa73bcaec25104")
        ]
}

##################  update()方法  ###############
第一行确定更新条件query,
第二行更新内容update,
第三行更新参数{upset:<boolean>,multi:<boolean>,writeConcern:<document>}

upset:可选,为true则不存在更新条件的记录时自动插入,默认为false,不插入
multi:可选,为true则更新(或插入)所有匹配的记录,默认为false,更新第一条
writeConcern:可选,抛出异常的级别

db.col.update(
{"title":"MongoDB 教程"},
{$set:{'title':'MongoDB'}},
{multi:true,}
)

执行显示结果:WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

###################  定义变量   #######################
//定义变量
var document=({
title: "MongoDB 教程",
description: "MongoDB 是一个NOSQL数据库",
by: "菜鸟教程",
url: "http://www.runoob.com",
tags: ['mongodb','database','NoSQL'],
likes: 100
});

db.col.inert(document)
db.col.save(document)        //若指定_id字段,则修改; 不指定,则插入,如下

################## save()方法 ######################
//修改_id为ObjectId("5c4b0f8d51fa73bcaec25102"),的likes字段,改为200
db.col.save({
_id: ObjectId("5c4b0f8d51fa73bcaec25102"),
title: "MongoDB 教程",
description: "MongoDB 是一个NOSQL数据库",
by: "菜鸟教程",
url: "http://www.runoob.com",
tags: ['mongodb','database','NoSQL'],
likes: 200
})
执行显示结果:WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


################# remove()删除  ###################
第一行,删除条件
第二行,指定删除条数,设为true或1,则只删除一条;默认删除匹配的全部记录
db.col.remove(
{"likes" : 100},
{justOne: 1} 
)
执行显示结果:WriteResult({ "nRemoved" : 1 })


db.col.remove(
{"e" : 400}
)
执行显示结果:WriteResult({ "nRemoved" : 3 })

db.col.remove({})        //清空表


################## db.find(query, projection) ###############
query条件(可选)、projection返回键值(可选)

db.col.find({"title" : "MongoDB"})

db.col.find({"likes" : 400}).pretty()        //以格式化的方式来显示所有数据


/**
 * 操作符 > -$gt  < -$lt  >= -$gt=gte   <= -$lte
 */
for example:
    查询’likes‘大于200的数据
db.col.find({likes: {$gt: 200}})

    查询大于100,小于300的数据
db.col.find({likes: {$lt: 300,$gt: 100}}).pretty()


################### MongoDB OR 条件 ######################
查询'by'为'菜鸟教程' 或 'likes'为'100'的数据
db.col.find({$or:[{"by": "菜鸟教程"},{"likes": "100"}]})

###################  MongoDB AND 和 OR 联合使用 #############
查询where likes>=200 AND (by='菜鸟教程' OR title='MongoDB 教程')
db.col.find(
{'likes': {$gte: 200},
$or: [{'by': '菜鸟教程'},{'title': 'MongoDB 教程'}]
})
.pretty()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值