Коллекция запросов mongodb как динамическая

Я сохраняю dynamic объект в своей базе данных, но я также хотел бы получить его как динамический объект. Как это может быть сделано? Я попробовал это так:

 public dynamic GetItemById(ObjectId id) { dynamic result = Db.GetCollection("Items").Find(x => x.Id == id).FirstOrDefaultAsync().Result; return result; } 

Но это дает мне следующую ошибку:

CS1963 Дерево выражений может не содержать динамическую операцию

Я знаю, что это можно исправить, используя типизированный объект вместо динамического. Но я не хочу использовать какие-либо типизированные объекты, потому что этот вид побеждает всю цель использования базы данных NoSQL, такой как MongoDB (или, по крайней мере, imho).

Как я могу запросить мои коллекции по Id или любому другому свойству, используя dynamic объекты?

Вы можете использовать синтаксис на основе строк, поскольку выражение не имеет никаких преимуществ при dynamic :

 var cursor = db.GetCollection("foo"). Find(Builders.Filter.Eq("_id", someId));