假设我有n
个元素,比如[X_1, X_2, ..., X_n]
,每个元素都有m
个属性,比如[P_1, P_2, ..., P_m]
。所以X_i.P_j
表示第i个元素的第j个属性,并且每个X_i.P_j
都有一些(巨大的)数据与之关联,我想将它存储在我的数据库中。
现在我想以这样的方式存储这些数据 -
X_i
,我可以快速返回所有j的数据X_i.P_j
。P_j
,我可以快速返回所有i的数据X_i.P_j
。我想到的是每个X_i
都有一个文档,它将数据存储为:
{
element: X_i,
P_1: data for X_i.P_1,
P_2: data for X_i.P_2,
...
}
现在说,对于给定的X_i
我想要返回所有j的所有数据X_i.P_j
,我只需要调用db.collection.find({ element: X_i })
对于另一种情况,对于给定的P_j
我要为所有i返回所有数据X_i.P_j
,我将不得不致电db.collection.find({}, { P_1:1, P_2:1, ..., P_m:1 })
这是处理这些数据的有效方法吗?
编辑:忘了提到我使用的是MongoDB!