MongoDB基础实战:CRUD

本文介绍了MongoDB的基本操作,包括创建数据库、插入数据、查询、更新和删除数据的方法,如使用insertOne、insertMany进行数据新增,用find配合操作符进行查询,updateOne、updateMany进行更新,以及deleteOne、deleteMany进行删除。内容适合MongoDB初学者和开发者参考。
摘要由CSDN通过智能技术生成

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 操作符

序号操作符描述
1lt<小于
2gt>大于
3lte<=小于等于
4gte>=大于等于

格式:

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")
                ]
        }
    }
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值