Mat*_*ska 4 increment matrix mongodb
我想有一个矩阵结构(一个NxN整数矩阵),我想在其中增加值.在MongoDb中建模矩阵并增加其值的正确方法是什么?
让我们考虑一下:
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
您可以通过不同方式将矩阵作为嵌入式数组存储在mongodb中:
1.Represent矩阵作为一维数组并存储如下:
{
_id: "1",
matrix: [1,2,3,4,5,6,7,8,9],
width: 3, // or store just size in case of NxN
height: 3,
}
Run Code Online (Sandbox Code Playgroud)
然后要增加矩阵的第三个元素,您需要进行以下更新:
db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }
Run Code Online (Sandbox Code Playgroud)
这种方法非常轻量级,因为您存储尽可能少的数据,但是您需要始终计算要更新的元素的位置,并且您需要编写其他代码来反序列化驱动程序中的矩阵.
2.以下列方式存储矩阵:
{
_id: "1",
matrix: [
{xy: "0-0", v: 1},
{xy: "1-0", v: 2},
{xy: "2-0", v: 3},
{xy: "0-1", v: 4},
...
]
}
Run Code Online (Sandbox Code Playgroud)
然后在矩阵中增加第一行的第三个元素,您将需要以下更新:
db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }
Run Code Online (Sandbox Code Playgroud)
从驾驶员方面来看,这种方法应该更简单,但您需要在数据库中存储更多信息.
选择你喜欢的任何东西.