Я использую C# MongoDb.Driver
(2.10), чтобы получить документ из коллекции:
MongoClient dbClient = new
MongoClient("mongodb://***");
IMongoDatabase db = dbClient.GetDatabase("***");
var collection = db.GetCollection<BsonDocument>("***");
Console.WriteLine( collection.Find(Builders<BsonDocument>.Filter.Empty).First());
Это работает и выдает следующее:
![enter image description here](https://i.stack.imgur.com/qKp3H.png)
Так что все в порядке.
Но теперь я хочу попробовать отфильтровать, где lockPolicyId.ToString()=="1"
. ( В виде строки, а не в виде числа )
Итак, я попробовал:
var filter= Builders<BsonDocument>.Filter.Where(a=>a["lockPolicyId"].AsString=="1");
var t=collection.Find( filter ).First() ;
Console.Writeline(t);
Что показывает эту ошибку:
Операнды для оператора 'Равные' не соответствуют параметрам метода 'op_Equality'.
Я также пытался:
var filter= Builders<BsonDocument>.Filter.Where(a=>a["lockPolicyId"].ToString()=="1");
И получил эту ошибку:
{document} {lockPolicyId} .ToString () не поддерживается.
Теперь я понимаю, почему это происходит (Int, а не String).
Но все же
Вопрос:
Как я могу фильтровать по значению ToString?
Другими словами, чтобы эта строка работала:
Builders<BsonDocument>.Filter.Where(a=>a["lockPolicyId"].AsString=="1")