我在数据库中存储了一些文档,它们的“结构”完全相同。每个文档都有三个浮点值(键是“A”、“B”和“C”),我需要做的是将每个文档投影为这三个值的平均值。
我还需要除以100,所以我的计算公式是(A + B + C)/3/100。据我所知,我需要将每个文档投影为不同的输出结果,但$group在这里没有用处(因为我不是在所有文档之间平均,而是在每个文档中)。
首先,我需要将此作为MongoDB命令编写,然后将其翻译为PHP。我想我能够完成PHP部分,但我需要一些帮助来开始实际的MongoDB命令...
db.measurements.aggregate( )
我的数据存储如下:
{ "_id" : ObjectId(xxx), "A": 22.34, "B": 23.32, "C": 75.32, "device_id": 3 }
{ "_id" : ObjectId(xxx), "A": 22.34, "B": 23.32, "C": 75.32, "device_id": 3 }
{ "_id" : ObjectId(xxx), "A": 22.34, "B": 23.32, "C": 75.32, "device_id": 3 }
当我提交一个GET请求时,我需要我的数据输出如下:
{ "_id" : ObjectId(xxx), "Average of A,B,C": 40.50, "device_id": 3 }
{ "_id" : ObjectId(xxx), "Average of A,B,C": 40.50, "device_id": 3 }
{ "_id" : ObjectId(xxx), "Average of A,B,C": 40.50, "device_id": 3 }
经过进一步的研究,似乎聚合不是我应该在这里使用的方法?如果我在php模型中插入之前计算平均值,并仅通过find()方法检索我的文档,那么是否更好呢?