У меня есть документы, хранящиеся в моей базе данных с точно такой же «схемой». Каждый документ имеет три значения поплавков (ключи «A», «B» и «C»), и мне нужно сделать вывод, что каждый документ проецируется как среднее из всех трех.Среднее из 3-х полей в том же документе
Мне также нужно разделить на 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()?
Пожалуйста, покажите пример документа с ожидаемым выходом. – styvane
Добавлен в исходное сообщение – ugotchi