How to create Bson Document with Null value using C# official driver?

mongodb, mongodb-.net-driver

Solution

Depends on the data type of your city variable. If the city variable is of type BsonValue you can use the ?? operator directly:

BsonValue city = null;
var query = Query.EQ("city", city ?? BsonNull.Value);
Console.WriteLine(query.ToJson());

If your city variable is of type string you need an extra conversion cast to make the compiler happy:

string city = null;
var query = Query.EQ("city", (BsonValue)city ?? BsonNull.Value);
Console.WriteLine(query.ToJson());

Problem

I have objects with 3 string fields Country, Province, City. They can contain null or some string name. I wanna query all data with the exact same values. For Example i need all data where ``` City = null, Province = "WA", Country = "USA" ``` I created BsonDocument: ``` var lookup = new QueryDocument { {"GeoPosition.City", userLocation.City}, {"GeoPosition.Province", userLocation.Province}, {"GeoPosition.Country", userLocation.Country} }; ``` But null field was thrown away and document looks like: ``` { "GeoPosition.Province" : "WA", "GeoPosition.Country" : "USA" } ``` If i'm triing to use ``` Query.EQ("GeoPosition.City", userLocation.City) ``` I have exception saying that parametr cant be null. As i see in documentation there is no problem in building query cheking if value equals null. So that is a problem with C# driver. Any ideas how to solve this problem?

Original source