我刚刚开始使用MongoDB并且有一个问题......我该如何做以下几点:
var testrec = new TestClass
{
Name = "John",
Address = "10 Here St",
RecordType = "A"
};
db.Save(testrec);
testrec.RecordType = "B";
db.Save(testrec);
我希望第二次保存另存为新文档,因此除了RecordType之外,应该有2个文档具有相同的详细信息。
似乎发生的事情就是用第二个文件覆盖第一个文档。
有人可以告诉我。
由于 迪安
答案 0 :(得分:0)
保存第一个文档时,会为其分配_id
。
使用现有_id
保存文档时,这是一次更新。
要插入新文档,请将所有字段(不包含_id
)复制到新数据结构中,或者取消设置之前生成的_id
。
答案 1 :(得分:0)
您只需要新建另一个ID,它将插入而不是更新。这是一个完整的例子:
using System;
using MongoDB.Bson;
using MongoDB.Driver;
namespace MongoTest
{
class TestClass{
public string Name;
public string Address;
public string RecordType;
public ObjectId Id;
}
class MainClass
{
public static void Main (string[] args)
{
var connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
var server = client.GetServer();
var db = server.GetDatabase("test");
var collection = db.GetCollection("test");
var testrec = new TestClass
{
Name = "John",
Address = "10 Here St",
RecordType = "A",
Id = new ObjectId()
};
collection.Save(testrec);
testrec.Id = new ObjectId();
testrec.RecordType = "B";
collection.Save(testrec);
testrec.Id = new ObjectId();
testrec.RecordType = "C";
collection.Save(testrec);
}
}
}