C#MongoDB多个类似的记录

时间:2013-05-19 22:44:53

标签: mongodb

我刚刚开始使用MongoDB并且有一个问题......我该如何做以下几点:

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

db.Save(testrec);

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

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

似乎发生的事情就是用第二个文件覆盖第一个文档。

有人可以告诉我。

由于 迪安

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);
         }
    }
}