mongodb的相关概念pw【itlike.com】.xmind

RDBMS(关系型数据库)

Mysql、SQLServe、Oracle、DB2······

NoSQL(非关系型数据库)

MongoDB、CouchDB、HBase、Redis······

MongoDB介绍

image.png

MongoDB安装

具体可看安装 MongoDB
image.png

MongoDB可视化工具

MAC版 NoSQLBooster For MongoDB

破解版下载链接

WIN版 NoSQL Manager for MongoDB

下载链接

MongoDB使用

image.png

启动MongoDB

  1. 添加到 PATH 路径中

    1. export PATH=/usr/local/mongodb/bin:$PATH
  2. 启动MongoDB

    1. mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork

    基础语句

    1. // 1. 用数据库
    2. use "test"
    3. show dbs
    4. // 2. 查询colleges集合中文档
    5. db.colleges.find();
    6. db.colleges.find({ name: '大数据' });
    7. // 3. 插入文档
    8. db.colleges.insert([{ name: 'C++' }]);
    9. // 4. 更新文档
    10. db.colleges.update({ name: 'Html5' }, { $set: { intro: '打通' } });
    11. // 5. 替换文档
    12. db.colleges.replaceOne({name:'K12'},{name:'大数据'});
    13. // 6. 删除文档的值
    14. db.colleges.update({name:'PHP'},{$unset: {intro: "世界上最好的语言" }});
    15. // 6.1 删除文档
    16. db.colleges.remove({name:'大数据'});
    17. // 6.2 删除所有文档
    18. db.colleges.remove({});
    19. // 6.3 删除集合
    20. db.colleges.drop();
    21. // 7. 添加字段
    22. db.colleges.update({ name: 'Html5' }, { $set: { class: {core:['打通']} } });
    23. // 7.1 数组字段追加值,可以重复
    24. db.colleges.update({ name: 'Html5' }, { $push: { "class.core": '打通1234' } });
    25. // 7.2 数组字段追加值,不可重复
    26. db.colleges.update({ name: 'Html5' }, { $addToSet: { "class.core": '打通12345' } });
    27. // 8. 查找字段
    28. db.colleges.find({'class.core':'打通' });

    条件查询

    ```plsql // 1. 向集合插入10000个文档 for(var i = 1;i<=10000;i++){ db.demo.insert({counter:i}) } db.demo.find(); db.demo.remove({});

var arr = []; for(var i = 1;i<=10000;i++){ arr.push({counter:i}); } db.demo.insert(arr);

// 2. 条件查询 // eq相等,ne、neq不相等,gt大于,lt小于 gte,ge大于等于,lte、le 小于等于,not非,mod求模 db.demo.find({counter:{$gt: 9999}})


<a name="Kja0a"></a>
# 多表查询
```javascript
// 1. 创建company数据库,将itlike和section集合导入到数据库
show dbs
use company
db

db.itlike.insert([
    { cno: '1001', cname: 'HTML5学院' },
    { cno: '1002', cname: 'Python学院' },
    { cno: '1003', cname: 'Java学院' },
    { cno: '1004', cname: 'Go学院' },
])

db.section.insert([
    {name:'胡雪',job:'辅导员',wages:10000.0,cno:'1001',bonus:1600},
    {name:'赵乐乐',job:'讲师',wages:20000.0,cno:'1001',bonus:2600},
    {name:'冯璐璐',job:'辅导员',wages:12000.0,cno:'1001',bonus:1688},
    {name:'赵晓雪',job:'辅导员',wages:12000.0,cno:'1002',bonus:1288},
    {name:'孙芙蓉',job:'辅导员',wages:10000.0,cno:'1003',bonus:2688},
])
// 2. 查询HTML5学院老师
var cno = db.itlike.findOne({cname: 'HTML5学院'}).cno;
db.section.find({cno:cno});

mongoose

mongoose的基本使用

image.png

mongoose的增删查改

image.png

image.png
image.png

image.png

image.png
mongoose的其他方法
image.png