我正在学习mongodb并按照以下要求尝试:
数据在平面文件中格式化为:
id: number
user: string
filename1: string
filename1:id: number
filename1:attribute1: number
filename1:attribute2: number
filename1:attribute3: number
filename2: string
filename2:id: number
filename2:attribute1: number
filename2:attribute2: number
filename2:attribute3: number
...
filename_n: string
filename_n:id: number
filename_n:attribute1: number
filename_n:attribute2: number
filename_n:attribute3: number
文件名在名称和计数方面都有所不同。每个文件名的属性是固定的。有多个用户。
我需要能够根据属性值进行查询。
我在这里找到了一个相关的问题: How to get a specific embedded document inside a MongoDB collection?
想知道最好的架构是针对我的要求的。
或者mongodb是个不错的选择吗?
答案 0 :(得分:1)
mongodb中没有架构,您可以根据需要更改文档的存储方式,您可以尝试按用户进行操作,其中文件名是一个大小不同的数组,并且因为属性是固定的大小,然后您可以指定固定的属性集,您可以在其中查询文件[X] .attribute value。
{
"id": "44",
"user":"Jack Smith",
"files":[
{
"name":"filename1",
"id":"21",
"attribute1": "4444",
"attribute2": "5555",
"attribute3": "7777",
"attribute4": "8888"
},
{
"name":"filename2",
"id":"55",
"attribute1": "1111",
"attribute2": "3333",
"attribute3": "9999",
"attribute4": "80000"
},
{
"name":"filename3",
"id":"33",
"attribute1": "4444",
"attribute2": "5555",
"attribute3": "7777",
"attribute4": "8888"
},
..............
{
"name":"filenamen",
"id":"45",
"attribute1": "4444",
"attribute2": "5555",
"attribute3": "7777",
"attribute4": "8888"
}
]
}