0

我刚刚开始使用 MongoDB 并且有一个问题......我该如何执行以下操作:

var testrec = new TestClass
{
  Name = "John",
  Address = "10 Here St",
  RecordType = "A"
};

db.Save(testrec);

testrec.RecordType = "B";
db.Save(testrec);

我希望第二次保存保存为新文档,因此除了 RecordType 之外,应该有 2 个具有相同详细信息的文档。

似乎发生的是它只是用第二个文件覆盖第一个文件。

有人可以告诉我。

谢谢院长

4

2 回答 2

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);
         }
    }
}
于 2013-05-19T23:13:28.663 回答
0

当您保存第一个文档时,它会被分配一个_id.

当您使用现有的 保存文档时_id,这是一个更新。

要插入新文档,请将所有字段(不带_id)复制到新的数据结构中,或者取消设置_id之前生成的字段。

于 2013-05-19T22:54:55.193 回答