我们正在将一些数据从MongoDB传输到sql Server.为了在sql Server中存储mongo的objectid,我有一个varbinary类型的列(12).
问题1:这是在sql Server中存储mongo的正确方法吗?
当我转换objectid使用时
select CONVERT(varbinary(12),'54aedb94e6c12b1c0e83385f')
我回来了0x353461656462393465366331
问题2:在C#中,如何将存储的二进制文件转换回字符串十六进制值?
问题3:我使用EF采用数据库优先方法.如何在sql Server表中查询匹配的objectid(考虑到Objectid存储为varbinary)
public vod DoWork(string mongoid) { //how do i get client based on `mongoid` parameter which is string? var result = _dbContext.Clients.SingleOrDefault(x=>x.MongoId == ?????) }
假设MongoId是varbinary列
解决方法
因为这个命题会导致存储空间增加,作为结果,我们将有可能创建多场指数.
解:
添加将存储额外信息的字段(Pid时间戳增量Pid)
var o = new ObjectId(); var o1 = o.Timestamp; //int var o2 = o.Increment; //int var o3 = o.Machine; //int var o4 = o.Pid; //short
对于特定的目标,我们可以:
objectID: 57ce88b4857eda2fe48f042f Timestamp: 1473153204 Machine: 8748762 Pid: 12260 Increment: 9372719
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。