文件
如何根据文件名定位文件所在工作表记录
- 根据对象存储中保存的文件名查询
- 根据文件上传时的名称查询
以对象存储中保存的文件名为
bR2HbXfudAfo9JafdveE4K0C9J2g519Gae3d4I84820k8a9Bee3t5I914q5J4p6e.pdf
示例
到 MongoDB mdattachment
库中查询对应的 docid
> use mdattachment
> db.attachment.find({"name": "52a9dF0c71fscg6P9Lahfc5B41d4c0dv5FasdM5a5LaQdoaE9V1x64aK04en3Ydu.pdf"}).pretty()
{
"_id" : ObjectId("6413d880840db440e5f5a7be"),
"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"server" : "https://hap.domain.com/file/mdoc/",
"oFilename" : "APaaS测试文件",
"path" : "doc/20230317/",
"name" : "52a9dF0c71fscg6P9Lahfc5B41d4c0dv5FasdM5a5LaQdoaE9V1x64aK04en3Ydu.pdf",
......
}
-
获取到
docid
为a234f6ca-6bf2-4491-9261-e24758376b91
-
此时的
oFilename
也就是保存在工作表记录中的实际文件名称
以文件上传时的名称为
APaaS测试文件.pdf
示例
到 MongoDB mdattachment
库中查询对应的 docid
> use mdattachment
# 根据文件名精确查询
> db.attachment.find({"oFilename":"APaaS测试文件"}).pretty()
{
"_id" : ObjectId("6413d880840db440e5f5a7be"),
"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"server" : "https://hap.domain.com/file/mdoc/",
"oFilename" : "APaaS测试文件",
"path" : "doc/20230317/",
"name" : "52a9dF0c71fscg6P9Lahfc5B41d4c0dv5FasdM5a5LaQdoaE9V1x64aK04en3Ydu.pdf",
......
}
# 根据文件名模糊查询
> db.attachment.find({oFilename:{$regex:'.*PaaS.*'}}).pretty()
-
获取到
docid
为a234f6ca-6bf2-4491-9261-e24758376b91
-
此时的
name
也就是保存在对象存储中的文件名
根据 docid
在关系表里查询出控件ID
> db.attachmentrelation.find({"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91"}).pretty()
{
"_id" : ObjectId("6448eb672d71e11d04aae297"),
"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fType" : 9,
"pids" : [
"eaf823e5-4205-44fd-8521-109d3ec29a92"
],
"ctime" : ISODate("2023-04-26T09:14:15.289Z"),
"sourceid" : "bac739dc-9f8f-4ea5-a1f8-bdea56d27b81",
"commentid" : "6448eb5c12053cf665be2131"
}
- 如果
fType = 9
,那么commentid
就是控件id,sourceid
是记录ID - 获取到的控件ID
commentid
为6448eb5c12053cf665be2131
- 获取到的记录ID
sourceid
为bac739dc-9f8f-4ea5-a1f8-bdea56d27b81
sourceid
对应mdwsrows
库中对应工作表的rowid
commentid
对应mdworksheet
库wscontrols
表的cid
根据 commentid
在 mdworksheet
库 wscontrols
表中查询工作表ID
> use mdworksheet
switched to db mdworksheet
> db.wscontrols.find({cid:"6448eb5c12053cf665be2131"}).pretty()
{
"_id" : ObjectId("6448eb5c12053cf665be2136"),
"cid" : "6448eb5c12053cf665be2131",
"wsid" : "6448eb5c12053cf665be212e",
......
}
wsid
就是工作表ID,得到工作表ID为6448eb5c12053cf665be212e
浏览器中访问:系统地址/worksheet/工作表ID,即可进入所查询文件所在的工作表
浏览器中访问:系统地址/worksheet/工作表ID/row/记录ID,即可进入所查询文件所在的工作表记录