Mongodb C # — Как получить максимальную дату — (агрегат)

#c# #mongodb #asp.net-core #aggregation-framework #mongodb-.net-driver

#c# #mongodb #asp.net-ядро #агрегация-фреймворк #mongodb-.net-driver

Вопрос:

Документы выглядят так:

 {
  ContractNumer: 10,
  SomeField: "ABC",
  ValueContract: 17.7,
  DataProcessing: '2021-01-19 10:23:20:10',
  Status: 1
}
 

Как вы можете написать что-то подобное с помощью драйвера mongodb на C #?

 Select ContractNumer, SomeField, ValueContract, DataProcessing, Status
FROM TAB T1
INNER JOIN 
(SELCT ContractNumer, MAX(DataProcessing) AS MAX_DATE FROM TAB) SUB_T
ON T1.ContractNumer = SUB_T.ContractNumer 
AND T1.DataProcessing = SUB_T.MAX_DATE 
WHERE ....
 

Так что для каждой комбинации (группы) ContractNumber мы получим максимум DataProcessing

Ответ №1:

Это поможет вам

 db.collection.aggregate([
  {
    $group: {
      "_id": "$ContractNumer", //Group
      "max": {
        "$max": "$DataProcessing" //Find max
      }
    }
  }
])
 

Попробуйте c# и отправьте вопрос с вашими попытками.

Комментарии:

1. Таким образом, запрос выводит только поле ContractNumer, но мне нужны все поля