1 缘起
后台项目使用的数据库是MongoDB,
在一次测试联调过程中,测试同事在测试数据的准确性时,
问我这些数据该怎么查,如何计算验证数据的结果,
我当时,对MongoDB数据操作不熟悉,请教了其他有经验的同事,
之后,我开始学习MongoDB,从最基本的开始:CRUD。
分享如下,帮助更多有需要的开发者,轻松应对日常开发和知识交流。
2 CRUD
2.1 新建
2.1.1 新建数据库
格式:
use database-name;
新建数据库:tutorial
use tutorial;
数据库不存在:创建数据库
数据库存在:切换到该数据库
2.1.2 新建数据
格式:
db.collection_name.insertOne({数据})
db.collection_name.insertMany([{数据-1},{数据-n}]);
- 新建单条数据
时间戳:Doule timestamp = new Date().valueOf();
db.user.insertOne(
{
"age": 10,
"createdTime": new Date().valueOf(),
"money": 100,
"sex": "male",
"uid": "0x0001",
"username": "xiaoyi"
}
);
- 新建多条数据
db.user.insertMany(
[
{
"age": 10,
"createdTime": new Date().valueOf(),
"money": Double(100),
"sex": "male",
"uid": "0x0007",
"username": "xiaoqi"
}, {
"age": 10,
"createdTime": new Date().valueOf(),
"money": Double(100),
"sex": "male",
"uid": "0x0008",
"username": "xiaoba"
}]
);
2.2 查询数据
2.2.1 操作符
序号 | 操作符 | 描述 |
---|---|---|
1 | lt | <小于 |
2 | gt | >大于 |
3 | lte | <=小于等于 |
4 | gte | >=大于等于 |
格式:
db.collection_name.find({条件});
2.2.2 查询所有数据
db.user.find();
2.2.3 查询指定条件的数据
db.user.find(
{uid: '0x0002'})
db.user.find(
{age: {$gt: 11}});
2.2.4 聚合查询
db.user.aggregate([
{
$match: {age: {$gte: 11}}
},
{
$group: {_id: "$sex", totalMoney: {$sum: "$money"}}
}
]);
2.3 更新数据
格式:
db.collection_name.updateOne({搜索条件}, {更新数据操作});
db.collection_name.updateMany({搜索条件}, {更新数据操作});
2.3.1 更新单条数据
db.user.updateOne({ _id: ObjectId("647c4ea010d72b63acb01301") }, {
$set: {
"age": 10,
"createdTime": Long("1685868192340"),
"money": Double(100),
"sex": "male",
"uid": "0x0001",
"username": "xiaoyi"
}
})
2.3.2 更新多条数据
- age大于10的用户,money设置为10
db.user.updateMany({ age: {$gt: 10}}, {
$set: {
"money": Double("10"),
}
});
- age大于10的用户,money增加10
db.user.updateMany({ age: {$gt: 10}}, {
$inc: {
"money": Double("10"),
}
});
2.4 删除
2.4.1 删除数据库
格式:
use database_name;
db.dropDatabase();
2.4.2 删除数据
格式:
# 删除所有数据
db.collection_name.deleteMany({});
# 删除所有数据
db.collection_name.drop();
# 删除特定数据
db.collection_name.deleteOne({field_name: value});
# 删除多条数据
db.collection_name.deleteMany({field_name: value});
2.4.1 删除单条数据
db.user.deleteOne({_id:ObjectId("647c4e5e10d72b63acb01300")});
2.4.2 删除多条数据
db.user.deleteMany(
{
_id: {
$in:
[
ObjectId("647c685810d72b63acb01308"),
ObjectId("647c666410d72b63acb01307"),
ObjectId("647c685810d72b63acb01309")
]
}
}
);