Bug:在mongosh中更新doc后oss查询失败
- 背景:朴宸需要手动更新一条 oss 中的 content 录像内容
- 过程:找暴军哥用如下命令更新了目标 doc:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
db.getSiblingDB("anchorlib").getCollection("lobj2024").updateOne(
{
"_id": 7416000760238506212
},
{
$set: {
"content": {
"$binary": {
"base64": "PD9......5kPg==",
"subType": "00"
}
}
}
}
);
- 问题:
- 匹配条件错误,应该指明是 NumberLong 类型的。
- 修改的 set 语句有问题,content 不是 json 格式,而是二进制格式的。
- 修改内容有问题,录像的编码是 GBK 的,注意不要按照 utf8 转 base64。
- 修正后的语句:
1 2 3 4 5 6 7 8 9 10
db.getSiblingDB("anchorlib").getCollection("lobj2024").updateOne( { "_id": NumberLong("7416000760238506212") }, { $set: { "content": BinData(0, "PD94b......W5kPg==") } } );
- 反思:应注意 mongo 中的数据类型,按照对应的格式执行查询/修改。
本文由作者按照
CC BY 4.0
进行授权