MongoDB基础实战:CRUD

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")
                ]
        }
    }
);

猜你喜欢

转载自blog.csdn.net/Xin_101/article/details/131029851