我有一个MongoDB(顺便说一句_我真的很喜欢Mongo),并且在我试图保存一组对象的其中一个集合中。其中一些对象将是字符串,一些是bool,一些是十进制的。 数组的定义(实际上它是一个字典)是这样的:
public Dictionary<string, object> Fields
{
get
{
if (_Fields == null)
_Fields = new Dictionary<string, object>();
return _Fields;
}
set
{
_Fields = value;
}
}
直到我的代码将数据保存到数据库,数组中变量的类型是正确的。当我通过MongoHQ或代码保存并查看数据时,数组会返回所有字符串。
我正在使用C#驱动程序。
有没有办法强制变量为类型?我在这里错过了什么吗? TIA
答案 0 :(得分:0)
你问的是合理的。对于对象,没有特殊的语法 - 只需确保输入不是字符串。但是在我的源代码中(可能很旧),我看不到BSON序列化器中字典的映射。
现在在BerkeleyDB中你需要为你存储的每种类型定义一个回调,但MongoDB通过BSON比这更聪明。
btw:我正在使用MongoDB的https://github.com/atheken/NoRM驱动程序。你在用什么?
思路:
尝试收集,列表或数组而不是字典
将字典序列化/反序列化为/ []