我正在尝试添加一个简单的字符串列表:
string[] misc = {"a", "b", "c", "d"};
List<string> myList = new List<string>(misc);
mongo_collection.Insert(myList);
它将返回错误:“Subclass必须实现GetDocumentID”
我尝试了这个:
mongo_collection.InsertBatch(myList);
但它导致了同样的错误。必须有一种方法来插入它而不创建一个继承自实现GetDocumentID的List的新类,对吗?
谢谢!
答案 0 :(得分:1)
您正在尝试将类型为String的List放入mongo数据库中。为了向Mongo添加内容,它必须是Bson对象,或者您必须创建自定义对象,并映射属性以便Mongo知道如何将对象转换为BSON。
答案 1 :(得分: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,支持自动生成唯一值)。