MongoDB持久化混合类型数组
本文关键字:数组 类型 混合 持久化 MongoDB | 更新日期: 2023-09-27 18:02:15
我有一个MongoDB
,在一个集合中,我试图保存一个对象数组。这些对象有些是字符串,有些是bool,有些是decimal。数组(实际上它是一个Dictionary)的定义如下:
public Dictionary<string, object> Fields
{
get
{
if (_Fields == null)
_Fields = new Dictionary<string, object>();
return _Fields;
}
set
{
_Fields = value;
}
}
直到我的代码将数据保存到数据库时,数组中变量的类型都是正确的。当我通过MongoHQ
或代码保存和查看数据时,数组返回所有字符串。
我正在使用C#
驱动程序。
是否有一种方法强制变量为类型?我遗漏了什么吗?
你的要求是合理的。当涉及到对象时,没有特殊的语法——只需确保您的输入不是字符串。然而,在我拥有的源代码中(可能是旧的),我在BSON序列化器中没有看到字典的映射。
现在在BerkeleyDB中,您需要为存储的每种类型定义回调,但MongoDB通过BSON比这更聪明。
btw:我使用https://github.com/atheken/NoRM驱动程序的MongoDB。你在用什么?
的想法:
-
尝试使用集合、列表或数组代替字典
-
序列化/反序列化你的字典到/从字节[]