Сумма при поиске в Mongodb C#C#

Место общения программистов C#
Anonymous
Сумма при поиске в Mongodb C#

Сообщение Anonymous »

Код: Выделить всё

            List data = new List();

data.Add(new abcd { name = "tbl1", fieldname = "total_amount" });
data.Add(new abcd { name = "tbl2", fieldname = "total_amount_return" });

var Pipeline = new List();

var groupFields = new BsonDocument
{
{ "_id", "$_id" },
{ "customer", new BsonDocument("$first", "$customer") },
{ "sr_no", new BsonDocument("$first", "$sr_no") },
{ "untitled", new BsonDocument("$first", "$untitled") }
};

// Perform all lookups first
for (int i = 0; i < data.Count; i++)
{
Pipeline.Add(new BsonDocument("$lookup", new BsonDocument
{
{ "from", data[i].name },
{ "localField", "_process_id" },
{ "foreignField", "_process_id" },
{ "as", $"Products{i}" }
}));

// Unwind each lookup result
Pipeline.Add(new BsonDocument("$unwind", new BsonDocument
{
{ "path", $"$Products{i}" },
{ "preserveNullAndEmptyArrays", true }
}));

// Sum each field
groupFields.Add($"{data[i].fieldname}", new BsonDocument("$sum", new BsonDocument("$ifNull", new BsonArray { $"$Products{i}.{data[i].fieldname}", 0 })));
}

// Group by required fields and sum the fields from each lookup
Pipeline.Add(new BsonDocument("$group", groupFields));
Это мой код для получения суммы из 2 или более 2 коллекций. Этот код написан Chatpgt, но есть проблема в том, что он умножит общую сумму и вернет сумму с количеством строк, например, если общая сумма равна 1000, а количество продуктов в таблице 1 равно 4, то он вернет 4000, то же самое и с общей суммой. возврат суммы.
Будем очень признательны за любые указания и предложения.

Подробнее здесь: https://stackoverflow.com/questions/787 ... go-c-sharp

Вернуться в «C#»