Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#驱动程序强制MongoDB存储0值_C#_Mongodb - Fatal编程技术网

使用C#驱动程序强制MongoDB存储0值

使用C#驱动程序强制MongoDB存储0值,c#,mongodb,C#,Mongodb,我将MongoDB与C#一起使用,遇到了一个问题,即如果我将一个对象发送到mongo中存储,那么任何=0的整数值都不会被存储 例如,如果我有这样一个类: public class Data { public int x { get; set; } public int y { get; set; } } var document = new Data { x = 1, y = 0 }; collection.Insert(document); 然后我创建了一个值为x=1和y=

我将MongoDB与C#一起使用,遇到了一个问题,即如果我将一个对象发送到mongo中存储,那么任何=0的整数值都不会被存储

例如,如果我有这样一个类:

public class Data
{
    public int x { get; set; }
    public int y { get; set; }
}
var document = new Data { x = 1, y = 0 };
collection.Insert(document);
然后我创建了一个值为x=1和y=0的实例,并将其存储在mongo中,结果如下:

{
    "x" : 1
}
而我想要的是:

{
    "x" : 1,
    "y" : 0
}
我觉得我肯定错过了什么,因为我找不到其他人对此有问题

我之所以需要0值,是因为我需要将它与mongo聚合函数一起使用


谢谢。

我无法复制您正在报告的内容。我使用您的数据类创建了一个测试程序,并在MongoDB中存储了一个文档,如下所示:

public class Data
{
    public int x { get; set; }
    public int y { get; set; }
}
var document = new Data { x = 1, y = 0 };
collection.Insert(document);
然后,我使用MongoDB shell查看插入数据库的内容:

> db.data.find()
{ "_id" : ObjectId("550c7542f266222543e1d16d"), "x" : 1, "y" : 0 }
>
它确实存储了值为0的y


您是否配置了任何可能覆盖0值序列化方式的约定?

您可以按如下方式为数据类注册类映射,以指示mongodb存储y的默认值

BsonClassMap.RegisterClassMap<Data>( cm => 
{
   cm.AutoMap();
   cm.MapMember(d => d.y).SetIgnoreIfDefault(false);
});
BsonClassMap.RegisterClassMap(cm=>
{
cm.AutoMap();
cm.MapMember(d=>d.y).SetIgnoreIfDefault(false);
});

您能否至少向我们展示一下您的代码中进行更新的相关部分?我不确定您的意思,我只是在使用mongo驱动程序的插入功能:Collection.Insert(data);想知道您是如何填充数据对象的,以便我可以建议一种替代方法,如
var data=new BsonDocument().Add(“x”,1).Add(“y”,0);实体。保存(数据)