我需要将 MongoDB 查询传输到不同的系统。出于这个原因,我想使用MongoDB Extended JSON。我需要这样做主要是因为我在查询中使用了日期比较。
所以,问题的核心是我需要将一个在node.js后端生成的 MongoDB 查询传输到另一个用Go语言编写的后端。
直观地说,通过REST发送此查询的最明显格式是 JSON。但是,MongoDB 查询不完全是 JSON,而是 BSON,它包含日期的特殊构造。
因此,我们的想法是使用MongoDB 扩展 JSON作为特殊构造的表示形式将查询转换为 JSON 。经过一些测试,很明显这些查询不起作用。MongoDB shell 和通过node.js发送的查询都需要特殊的ISODate
ornew Date
构造。
最后,实际的问题是:是否有将 JSON 编码/解码为 BSON 的函数,同时考虑到JavaScript (node.js) 和Go语言中的MongoDB Extended JSON?
显然有一个node.js包可以解析和字符串化 BSON/JSON。这样,我的问题就解决了一半。我想知道Go语言中是否有这样的东西。
例如,以下查询在普通 BSON 中:
{ Tmin: { $gt: ISODate("2006-01-01T23:00:00.000Z") } }
翻译成MongoDB Extended JSON,就变成了:
{ "Tmin": { "$gt" : { "$date" : 1136156400000 }}}
相关分类