【发布时间】:2015-04-22 15:10:56
【问题描述】:
我已经看到了一些与此相关的问题,但似乎没有一个可以直接解决这里的问题。
所以场景是有一个基于 C# 的 API,它将数据写入 mongodb 实例并使用 GUID 作为 mongo 中的 _id,因此例如它看起来像:
"_id" : new BinData(3, "+jscvebAl0+NO0n1WySLTQ=="),
所以假设它不会改变,它将永远是那个数据类型,我对此无能为力。
所以在 nodejs 中,我读入了一个文档,其中包含一些与其他资源相关的 UUID,但是当我使用 nodejs 2.0 驱动程序读入文档时,UUID 变量被读入为 GUID 字符串,如下所示:
"someIdField": "c1489470-4e04-49ba-ae91-a20c009254e5"
所以如果我直接使用{ "_id" : someIdField } 它找不到匹配的文档,我假设它是因为它需要与二进制表示进行比较,而不是字符串之一,但是我似乎无法将该字符串转换为有价值的东西。
我尝试使用npm uuid 包进行解析,然后像这样使用该缓冲区:
var bytes = Uuid.parse(uuid);
return new Binary(new Buffer(bytes), 3);
但这似乎不起作用,我尝试了其他解决方案,包括 base64 编码,但似乎没有任何结果。那么我在这里还有什么需要做的吗?
【问题讨论】:
标签: c# node.js mongodb uuid bson