我一直在努力熟悉使用MongoDB,特别是GridFS(通过客户端实现)。在我正在玩的项目中,我有相应位置的用户,后面跟着相应的数据,但它目前只存储在最终会导致问题的文件系统上。
我现在拥有的示例数据结构是:
./(userId)/images/img1.png
./(userId)/data/sensor1/sensorOutput1.data
./(userId)/data/sensor1/sensorOutput2.data
./(userId)/data/sensor2/sensorOutput1.data
./(userId)/data/sensor2/sensorOutput2.data
因此,在查看GridFS时,我发现您可以传递属性/值以与每个文件的元数据相关联。看一下这个设置,在阅读MongoDB的教程之后,我想到了这个方法:
拥有一个包含多个集合的数据库(例如数据或图像仅用于分隔某些数据)。然后在每个集合中,为每个文档提供属性,例如:
在图片收集下:
{
"userId": 5,
"path": "",
"filename":"img1.png"
...
}
或
根据数据收集:
{
"userId": 5,
"path": "sensor1",
"filename": "sensorOutput1.data"
...
}
另外,我可以有一个收藏品,为了这个例子,我会打电话给"一切"
{
"userId": 5,
"path": "images/",
"filename": "img1.png"
...
}
{
"userId": 5,
"path": "data/sensor1/",
"filename": "sensorOutput1.data"
...
}
{
"userId": 5,
"path": "data/sensor2/",
"filename": "sensorOutput1.data"
...
}
这些解决方案中的任何一个似乎都合理吗?然后我会在"路径"上创建一个索引。属性?我已经看到了向MongoDB添加文件的例子,但却找不到如何构建用户文件的例子。
谢谢!