0

我正在尝试添加一个简单的字符串列表:

string[] misc = {"a", "b", "c", "d"};
List<string> myList = new List<string>(misc);
mongo_collection.Insert(myList);

它会返回错误:“子类必须实现 GetDocumentID”

我尝试了这个:

mongo_collection.InsertBatch(myList);

但它导致了同样的错误。必须有一种方法可以在不创建继承自实现 GetDocumentID 的 List 的新类的情况下插入它,对吧?

谢谢!

4

2 回答 2

1

您正在尝试将 String 类型的 List 放入 mongo 数据库中。为了向 Mongo 添加一些东西,它要么必须是 Bson 对象,要么您必须创建一个自定义对象,并映射属性以便 Mongo 知道如何将您的对象转换为 BSON。

于 2012-04-13T16:45:01.527 回答
1

插入到集合中的顶级对象必须是映射到 BSON 文档(而不是 BSON 数组)的对象。

此外,顶级对象必须始终有一个 Id 字段(映射到名为 _id 的元素)。

要将数据插入数据库,您将定义一个类似这样的类:

public class C
{
    public ObjectId Id;
    public List<string> Strings;
}

然后你可以像这样插入数据:

var document = new C();
document.Strings = new List<string> { "a", "b", "c", "d" };
collection.Insert(document);

请注意,将自动为 Id 分配一个值(只要 Id 属于支持自动生成唯一值的 ObjectId 之类的类型)。

于 2012-04-13T22:41:00.840 回答