MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,操作起来比较简单和容易。文件存储格式为BSON(一种JSON的扩展),BSON 支持文档和数组的嵌套。
文档
{"site": "https://www.gorit.cn", "name":"CodingGorit"}
集合
{"site": "https://www.gorit.cn"}
{"site": "https://www.gorit.cn", "name":"CodingGorit"}
{"site": "https://www.gorit.cn", "name":"CodingGorit","age":5}
性能比较: Redis > MongoDB > MySQL / Oralce
不适用的场景
//查看所有文档记录
db.collection_name.find()// 查询一个文档
db.collection_name.findOne();// -------------------------条件查询-----------------------
// 条件查询 ==
db.user.find({"name":"Gorit111"}) // where name = "张三" 全匹配// 条件查询 小于
db.user.find({"age":{$lt:17}}); // where age < 17// 条件查询 小于或等于
db.user.find({"age":{$lte:20}}); // where age <= 20// 条件查询 大于
db.user.find({"age":{$gt:16}}); // where age > 10// 条件查询 大于或等于
db.user.find({"age":{$gte:16}}); // where age >= 16// 条件查询 不等于
db.user.find({"age":{$ne: 16}})// --------------------------逻辑查询----------------------
// 逻辑与 and 查询
db.user.find({"age":17},{"id":"1"})// 逻辑或 or 查询
db.user.find({$or: [{"age":17},{"id":"1"}]}
)// 组合查询练习
where age <=20 or (name in ("张三","Gorit111")
db.user.find({"age": {$lte: 20},$or: [{"name": "张三"},{"name": "Gorit111"}]}
)//-----------------------------分页查询-----------------
// 分页参数 Limit()
db.collection_name.find().limit(number);
// 查询数据库汇中的三条记录,如果数据库没有指定 limit() ,默认查询所有的数据
db.user.find().limit(3);// 使用 skip() 跳跃指定数量的数据
// 跳过第一条记录,查询往后的三条记录
db.user.find().limit(3).skip(1);
// 根据年龄升序
db.user.find().sort({"age":1})// 根据年龄降序排列
db.user.find().sort({"age":-1});
show dbs; // 查看数据库use test; // 如果 test 数据库不存在,则创建 test// 插入一条记录,如果集合不存在,先创建集合,在插入数据
db.user.insert({"id":"1","name":"Gorit","age":16});// 一次性插入多条记录
db.user.insert({"id":"5","name":"Gorit555","age":16},{"id":"6","name":"Gorit6666","age":18});// 一次性插入多条
db.user.insertMany([{"id":"4","name":"Gori333","age":16},{"id":"4","name":"Gorit4444","age":18}])
db.collection.update(,,{upsert: ,multi: ,writeConcern: }
)参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如,inc…)等,也可以理解为sql update查询内set后面的。
// 删除所有数据
db.collection_ name.remove({})// 删除指定字段的记录
db.collection_name.remove({"id":"1"})// 删除指定记录的第一条
db.collection_name.remove({"id":"1"},1)// 新版本删除所有的集合
db.collection_name.deleteMany({})// 新版本删除多个 status 为 A的
db.collection_name.deleteMany({ status : "A" })// 新版本删除一个 status 为 D 的集合
db.inventory.deleteOne( { status: "D" } )
@Document(collection = "ks_app_themes")
,表明连接哪张表。下一篇:HTTP 协议中的请求头参数