Mongo C#driver 2.0-在搜索中使用对象类型时结果为空

Mongo C#driver 2.0-在搜索中使用对象类型时结果为空,c#,mongodb,C#,Mongodb,我必须附上图片以使其更清晰,但“所以说我需要10个声誉来发布图片”,所以我将尝试用文字来说明 我使用 BsonDocument doc = new BsonDocument(); object val = GetValue(); //brings some value like int, string, float etc... doc.Add("Code", val.ToBson()); //Edited after posting the answer. 将上面的内容保存到Mongo时,如

我必须附上图片以使其更清晰,但“所以说我需要10个声誉来发布图片”,所以我将尝试用文字来说明

我使用

BsonDocument doc = new BsonDocument();
object val = GetValue(); //brings some value like int, string, float etc...
doc.Add("Code", val.ToBson()); //Edited after posting the answer.
将上面的内容保存到Mongo时,如下所示:

{
    "_id" : ObjectId("55dac7b1a695e914a4cb6bb7"),
    "Code" : {
    "_t" : "System.Decimal",
    "_v" : "1002"
}
现在,当我想查询它回来,我只是使用

object i = 1002;
var filter = Builders<BsonDocument>.Filter.Eq("Code", i.ToBson());
var list = this.mongoDatabase.GetCollection<BsonDocument> ("MyDocuments").Find(filter).ToListAsync().Result;
对象i=1002;
var filter=Builders.filter.Eq(“Code”,i.ToBson());
var list=this.mongoDatabase.GetCollection(“MyDocuments”).Find(filter).toListSync().Result;

我得到的是一个空列表,而不是我保存的结果。知道如何查询什么时候某些东西被存储为_t和_v吗?

我发现应该使用val.ToBson()而不是val.ToBson()API。它可以很好地使用后者。

我发现应该使用val.ToBson()而不是val.ToBson()API。它与后者配合得很好。

对图像的声誉禁令是因为我们想要文本而不是截图。另外,试着选择与你的问题有关的标题。至少可以说,当前的标题相当模糊。我选择更具描述性的“一点”如何?您是否尝试过使用
objecti=1002m而不是?这样,您就可以比较
十进制
值,而不是将
int
十进制
进行比较。顺便说一句,我看不出图像在这个问题上有什么用处——如果图像只是一个文本的屏幕截图,那就更好了。@BlakesSeven是的,我当时正急于发布它。对此很抱歉。@JonSkeet我使用ToBsonDocument()API修复了它。对图像的声誉禁令是因为我们需要文本而不是屏幕截图。另外,试着选择与你的问题有关的标题。至少可以说,当前的标题相当模糊。我选择更具描述性的“一点”如何?您是否尝试过使用
objecti=1002m而不是?这样,您就可以比较
十进制
值,而不是将
int
十进制
进行比较。顺便说一句,我看不出图像在这个问题上有什么用处——如果图像只是一个文本的屏幕截图,那就更好了。@BlakesSeven是的,我当时正急于发布它。很抱歉。@JonSkeet我用ToBsonDocument()API修复了它。