关系型数据库与mongodb 数据同步时主键ID的使用
2015-01-15 13:45
429 查看
如sql server中表test 包含字段id, name, description ,其中ID 是整型唯一(可以是自增)。 在使用的时候让ID和mongodb中的数据一致呢?我们按正常的操作,例如sql test中有一条记录 (insert into test(1,'ray','冯的博客')),把这条数据同步到mongo。
mongo插入数据格式如下:
{
"ID" : 1,
"Name" : "ray",
"Description" : "冯的博客"
}
同步的结果如下图:
我们发现多了一个"_id",即mongdb中创建collections记录是自己会加一个“_id”的唯一标识,而我们原来的ID 并不会在mongo中作为唯一ID使用,如果我们要使用原来的ID(把ID值放在“_id”中),我们就需要在test的实体对象上做处理。
原来的实体类:
修改后的实体类:
using MongoDB.Bson.Serialization.Attributes;
然后在插入数据到mongodb,就是我们想要的结果。
mongo插入数据格式如下:
{
"ID" : 1,
"Name" : "ray",
"Description" : "冯的博客"
}
同步的结果如下图:
我们发现多了一个"_id",即mongdb中创建collections记录是自己会加一个“_id”的唯一标识,而我们原来的ID 并不会在mongo中作为唯一ID使用,如果我们要使用原来的ID(把ID值放在“_id”中),我们就需要在test的实体对象上做处理。
原来的实体类:
public class TestObject { public int ID { get; set; } public string Name { get; set; } public string Description { get; set; } }
修改后的实体类:
using MongoDB.Bson.Serialization.Attributes;
public class TestObject { [BsonId] public int ID { get; set; } public string Name { get; set; } public string Description { get; set; } }
然后在插入数据到mongodb,就是我们想要的结果。
相关文章推荐
- 查询数据库表中第31-40行的数据,主键是id,顺序排列有可能空缺
- asp.net Repeater使用总结(序号列,主键ID,分页,空数据显示表头。。。)
- 2.非关系型数据库(Nosql)之mongodb:mongodb显示所有数据库,使用数据库,集合创建(显示和隐式创建),集合查询,初步数据的增删改查,分页
- mongodb使用-增删改查、colleciton关联、_id作为主键实现update
- 非mongodb数据库如何使用mongodb生成的主键id
- 代替数据库的自增主键的解决方案,解决了批量导数据ID出错的问题
- 如何使用 PDI 和 Oracle CDC 来实现Oracle 数据库向其他数据库的数据同步
- 使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取
- Java获取数据库自增主键表中插入数据的ID
- 使用java查看mongodb的数据库、集合以及数据信息
- 使用SSIS将数据从Cube中导出到关系型数据库
- mongo-node 利用eval属性完成数据库的增删改(可以使用mongodb的原生语言,解决ID自增问题)
- Mysql多线程、多用户同时操作数据库获取当前用户操作的最新主键值(获取使用MySQL的LAST_INSERT_ID)
- 如何使用myBatis在数据库中插入数据并返回主键
- 使用PLSQL Developer来实现不同数据库的表结构以及表数据同步
- 如何获取数据库新插入数据的主键id
- 对比关系型数据库,什么情况下使用非关系型数据库(mongodb)
- 数据库表初始化,删除所有数据后主键ID从1开始
- 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)
- C#使用access数据库,bin下的数据库和工程目录下数据库数据不同步解决办法