#c# #group-by #having #litedb
#c# #группа-по #имеющий #литедб
Вопрос:
Мне нужно найти «заказы» с одним и тем же «именем», которые встречаются более одного раза. В LiteDB.Studio я использую команду:
ВЫБЕРИТЕ * ИЗ Заказов, Где isAccept=ложная ГРУППА ПО имени, Имеющая количество()gt;1;
и у меня есть правильный результат с массивами в массиве. Я также могу использовать эту команду из кода:
использование (var db = новая база данных LiteDatabase(имя базы данных)) { var Заказы = db.Выполнить(cmdString).toArray(); }
и это тоже хорошо работает. Но следующий вывод кода: «Выражение» * «не является скалярным выражением и может возвращать более одного результата»:
using (var db = new LiteDatabase(DBname)) { var Qq =.GetCollection(ColName).Query(); Qq = Qq.Where("isAccept=false"); Qq = Qq.GroupBy(BsonExpression.Create("Name"); Qq = Qq.Having(BsonExpression.Create("Count(*)gt;1")); var Orders = Qq.Select(BsonExpression.Create("*")).ToArray(); }
Как можно использовать группу с ‘db.getCollection(ColName).Запрос()’?