美文网首页
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