入门8天玩转 MongoDB:入门指南(8天mongodb)
MongoDB 是当下最流行的NoSQL数据库之一,能够存储各种类型的数据。可以说,对于那些想要入门NoSQL、学习MongoDB的开发者来说,掌握MongoDB是必不可少的技能之一。那么,在8天里,怎么样才能玩转 MongoDB呢?
首先,启动MongoDB。在开始学习 MongoDB之前,首先要安装它,可以在 MongoDB的官网上下载最新的版本,然后运行适用于你的操作系统的安装程序。安装完成后,从命令行或者其他客户端输入相应的指令可以运行 MongoDB的实例,例如:
cd C:/mongo
mongod.exe
第二天,我们需要学习MongoDB的基本语句。以文档类型为主的MongoDB,以BSON(二进制文档格式)存储数据,数据可以分配至collection(集合)中。MongoDB提供了CRUD操作,可以通过Regular Expression(正则表达式)来查找符合条件的数据,例如:
// Create
db.profiles.insert({name: “John”, age: 25, job: “Developer”})
// Read
db.profiles.find({name: “John”})
// Update
db.profiles.update({name: “John”}, {$set: {age: 26}})
// Delete
db.profiles.remove({name: “John”})
第三天,我们需要学习如何使用MongoDB常用查询操作。有时,文档也需要符合一定的规则才能被视为有效,如果更新时不符合规则,这往往会导致错误。在MongoDB中,可以使用文档约束(Schema Validation)来确保文档是正确的。另外,也可以使用Aggregate函数对数据进行汇总:
// Schema Validation
db.createCollection(“profiles”, {
validator: {$and: [
{name : {$type: “string”}
},
{age : {$type: “int”, $gt:20, $lt:30}}
]
}
});
// Aggregation
db.collection.aggregate([
{$group:{_id:”$name”,
total:{$sum: “$price”}}
}
]);
第四天,介绍了MongoDB的使用场景。随着MongoDB的普及,现在几乎可以在任何领域使用该数据库,只要数据模型适合NoSQL格式。有些企业用MongoDB来存储文档或能提升安全的报表;而有的游戏公司则会使用它来存储从玩家的游戏前进和技能升级中获得的所有数据。MongoDB也可以用来存储一些你认为可能会受到攻击的敏感数据,因为MongoDB的自定义权限可以让每个用户对该数据都有细粒度的控制。
第五、六天,详细介绍了MongoDB如何实现安全性。由于MongoDB存储各种数据,因此需要考虑保护数据的安全性,例如用户认证登录、数据加密等,可以很好地实现安全措施。用户可以使用CRAM-CHALLENGE/RESPONSE、TLS/SSL、X.509证书的验证机制登录MongoDB,可以使用加密机制来存储数据,例如AES加密和Hashing算法:
// User authentication
// using CRAM-CHALLENGE/RESPONSE
db.createUser({
user: “testUser”,
pwd: “testpassword”,
mechanisms: [“CRAM-CHALLENGE”]
});
// Data Encryption
// using AES encryption
db.collection.find({
encryptedField: {$encrypt: {
keyid: “myAESKey”,
algorithm: “AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic”,
encryptValue: “{‘encoded_data:’ ‘abc123’}”
}
});
第七、八天,学习MongoDB在大型应用中的实施和部署。可以借助MongoDB实施数据库水平扩展或垂直扩展,实现大规模数据库的复杂部署,同时还可以针对不同的读/写场景进行复制和冗余。可以使用 MongoDB Atlas来管理数