美文网首页我爱编程
MongoDB — 语句

MongoDB — 语句

作者: 胡自鲜 | 来源:发表于2018-01-27 20:07 被阅读0次

    1. 什么是MongoDB ?

    1、MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
    2、MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
    3、MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    下载,安装

    homebrew 官方地址 https://brew.sh/

    在终端输入以下语句
    1.先安装 homebrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    2.接着安装 mongodb

    brew install mongodb

    3.终端启动MongoDB数据库

    mongod —dbpath=数据库地址
    例如: mongod --dbpath=/Users/lanou/Desktop/nodejs/vue/user/database

    4.再在终端中键入mongo(显示版本信息什么就说明安装好了)


    image.png

    5.show dbs (查看所有数据库)


    image.png

    5.退出:exit退出,或者Ctrl+c

    1.数据库操作

    (1) . 创建(切换)数据库

    use database_name :(database_name代表数据库的名字)
    注:如果数据库不存在,则创建数据库,否则切换到指定数据库

    (2) . 查看当前操作的数据库

    db 或 db.getName()
    注:db代表的是当前数据库 也就是person这个数据库

    (3) . 查看所有数据库

    show dbs

    (4) . 删除数据库

    db.dropDatabase()

    2.集合操作

    (1)查看当前数据库里的所有的集合

    show collections

    (2)创建集合(collection)

    使用 db.createCollection(collection_Name)方法

    (3)删除当前数据库中的集合(collection)

    db.collection_Name.drop()

    3.数据内容操作 (现在创建了一个users数据库,有一个person集合)

    (1) 使用insert()方法插入文档

    插入一条数据
    db.person.insert({name:’zpx’,age:6}) 向person集合添加一个{name:’zpx’,age:6}的数据
    插入多条数据
    db.person.insert([{name:’wangWu’,age:50},{name:’xiaoMing’,age:60}]) 向person集合添加多个[{name:’wangWu’,age:50},{name:’xiaoMing’,age:60}] 的Document

    (2) 使用save()方法插入文档

    db.collection_name.save(document) collection_name集合的名字 document插入的文档
    注:如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
    实例
    db.person.save({name:”xiaoHong”,age:50})
    db.person.save({_id:ObjectId(“562c9caf671c978b6596e825”),name:”xiaoHong”,age:10})

    (3)修改数据:通过id来修改 save方法


    image.png

    (4)更新

    db.person.update({name:’liSi_update’}, {$set: {age:40}}) 将document数据中name是liSi_update 的数据的age修改为 40
    注:如果有多条name是liSi的数据默认只更新一条
    加上{multi:true}就是更新所有name是liSi的数据
    db.person.update({name:’liSi_update’}, {$set: {age:40}},{multi:true})

    (5)删除数据

    db.person.remove({name:’fJianZhou’}) 默认删除worker集合里name是fJianZhou的所有
    如果只想删除一条加上{justOne:true}
    db.person.remove({name:’fJianZhou’},{justOne:true})

    查询数据

    (1)数据查询

    db.person.find()

    (2)pretty()方法以格式化的方式来显示所有文档

    db.person.find().pretty()

    (3)findOne()方法查询匹配结果的第一条数据

    db.person.findOne()

    (4)count统计查询到的数据条数

    db.person.find().count()

    (5)limit(num) :限制查询num条数据

    db.person.find({$or:[{name:/李/},{name:/王/}]}).sort({age:-1}).limit(2)

    (6)skip(num),跳过几条

    db.person.find().skip(2).limit(2);跳过两条,limit查询两条

    (7)排序查询(排序查询 1.正序。-1:倒序)数字不要加引号,排序会有问题

    db.person.find().sort(age:1); 按照年龄排序

    查询条件操作符

    (1)比较条件

    条件:大于gt 小于lt 大于等于 gte 小于等于 lt 不等于 ne 等于 直接用冒号
    db.person.find({age:{$gt:30}}) 查询age 大于 30的数据

    (2)逻辑条件 and or

    并且关系
    查询数据名字是“王五”,并且年龄是33,并且关系直接写在对象里面
    db.person.find({name:"王五",age:33})

    或者关系
    查询年龄等于48或者28
    db.person.find({$or:[{age:48},{age:28}]})

    (3)正则表达

    查询所有以“王作为开头的”的数据
    db.person.find({name:/^王/})

    我的博客链接

    相关文章

      网友评论

        本文标题:MongoDB — 语句

        本文链接:https://www.haomeiwen.com/subject/avfoaxtx.html