美文网首页
MongoDB操作流程

MongoDB操作流程

作者: 丿任曦 | 来源:发表于2019-08-12 09:55 被阅读0次

    MongoDB

    安装 mongod --dbpath "D:\Program Files\MongoDB\Server\4.0\data" --logpath "D:\Program Files\MongoDB\Server\4.0\log\mongod.log" --install --serviceName "MongoDB" 

    卸载mongod.exe --remove --serviceName "MongoDB"


    什么是MongoDB?

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。


    MongoDB - 数据库

    一个MongoDB中可以建立多个数据库

    MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件夹中。


    MongoDB - 文档

    文档是一组 键值对。

    MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系数据库有很大的区别,也是MongoDB 非常突出的特点。

    例如:{"genres":["犯罪","剧情"],"title":"肖申克的救赎"}


    MongoDB - 集合

    集合就是MongoDB的文档集合,类似于关系数据库中的表格

    集合存在于数据库中,集合没有固定的结构,可以在集合中插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一点的关联性

    多个文档的组合就是集合

    {"genres": ["犯罪", "剧情"], "title": "肖申克的救赎"}

    {"genres": ["搞笑", "无聊"], "title": "李茶的姑妈"}

    {"genres": ["好看"], "title": "无双", "stars": 9}


    MongoDB - 常用命令

    创建命令

    use [数据库名称]

    显示所有数据库

    show dbs

    查看当前所处数据库

    db / db.getName()

    显示当前DB状态

    db.stats()

    MongoDB - 数据库常用命令

    查看当前DB版本

    db.version()

    查看当前DB的链接机器地址

    db.getMongo()

    删除当前数据库

    db.dropDatabase()

    MongoDB - 集合常用命令

    创建集合  capped 上限

    db.createCollection('collName',{capped : true,size:20,max:100})

    db.collName.isCapped();  //判断集合是否为定容量集合

    得到指定名称的集合

    db.getCollection(name);

    得到当前db的所有集合

    db.getCollectionNames();

    显示当前db所有集合的状态

    db.printCollectionStats();


    添加

    如果没有集合作添加操作,会创建一个集合

    save   

    insert       //      

    insertOne    //添加一条

    insertMany   //添加多条

    例:db.users.save({name:'张三',age:16}); 

        db.users.insetOne({name:'张三',age:18});

        db.users.insertMany([{name:'李四',age:19},{name:'王五',age:20}])

    修改 

    $set 设置     $inc  加

    save

    //当传入_id时,save作为更新操作,当没有传入时,作添加操作

    update

    语法:

    db.collection.update(

      <query>,

      <update>,

      {

        upsert:

        multi:

      }

    )

    //query: update的查询条件,类似sql update查询内where后面的

    //update: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

    //upsert: 可选,如果有query,则修改数据,如果没有query,直接插入这条数据。是否插入一条记录,默认为false

    //multi: 可选,是否更新多条记录,默认false

    updateOne

    updateMany

    例:

    db.users.update({age: 25}, {$set: {name: 'changeName'}});

    // update users set name = 'changeName' where age = 25; 

    db.users.update({name: 'lisi'}, {$inc: {age: 50}}); 

    // update users set age = age + 50 where name = 'lisi'; 

    db.users.update({name: 'lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}); 

    // update users set age = age + 50, name = 'hoho' where name = 'lisi';


    删除

    remove

    语法:

    db.collection.remove(

        <query>,

        {

            justOne:<boolean>  //true或fals

        }

    )

    //query:条件

    //justOne:是否只删除一条,默认false

    deleteOne        //删除一条

    deleteMany     //删除多条

    **查询修改删除(多功能语句)**

    db.users.findAndModify({

        query:{age:{$gte:25}},

        sort:{age:-1},

        update:{$set:{name:'a2'},$inc:{age:2}},

        remove:true

    })

    MongoDB - 集合常用命令


    查询所有记录

    db.user.find()

    查询age = 22的记录

    db.user.find({'age':22});

    查询 age > 22 的记录  $gt >

    db.users.find({'age':{$gt:22}});

    查询 age < 22 的记录  $lt <

    db.users.find({'age':{$lt:22}});

    查询 age >= 22 的记录 $gte >=

    db.users.find({'age':{$gte:22}});

    查询 age <= 22 的记录 $lte <=

    db.users.find({'age':{$lte:22}});

    查询 age != 22 的记录 $ne !=

    db.users.find({'age':{$ne:22}});

    查询 age >= 22 并且 age <=26

    db.users.find({'age':{$gte:22, $lte:26}});

    查询 age >=23 或者 name == '张三'

    db.user.find({$or:[{age:{$gte:23}}, {name:'张三'}]);

    查询 name 中包含 mongo 的数据   

    db.users.find({'name':/mongo/});

    查询 name 中以 mongo 开头的数据

    db.users.find({'name':/^mongo/});

    查询 指定列 name、age 的数据

    db.users.find({},{name:1,age:1});

    查询 指定列 name age 并且 age > 25

    db.users.find(age:{$gt:25},{name:1,age:1});


    排序 sort

    升序

    db.users.find().sort({age:1});

    倒序

    db.users.find().sort({age:-1});

    查询 name = 张三 , age = 20 的数据

    db.users.find({name:'张三'},age:20)

    查询前5条数据  limit 限定

    db.users.find().limit(5);

    查询 10条以后的数据  skip 跳过/忽略

    db.users.find().skip(10);

    查询 在 5-10 之间的数据

    db.users.find().limit(10).skip(5);

    查询 第一条数据

    db.users.findOne();

    查询 某个结果集的记录条数

    db.users.find().count();

    相关文章

      网友评论

          本文标题:MongoDB操作流程

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