尝试获取mongodb _id字段的guid / string表示。
我使用MongoDB Perl模块,当我打印$cursor->{'_id'}
时,它看起来像一堆特殊字符(╪«añσ%CñQ
)。
Dumper说它实际上是一个哈希:
$VAR1 = bless( {
'data' => '╪«añσ%CñQ
ô╢_ú',
'subtype' => 3
}, 'MongoDB::BSON::Binary' );
问题是,数据字段似乎不是我可以转换为字符串的东西,我一直无法找到有关如何使用Perl执行此操作的任何信息。 Mongo版本是:3.2.5。
最后,我真正想要的是能够完成等同于select column from table where _id = (select id from other table where name = bla)
的mongo。
答案 0 :(得分:0)
来自_id哈希对象的'data'值最终是来自Mongo _id字段的值作为.NET guid。通过将Robo 3T中的“Legacy UUID Encoding”更改为“使用.NET编码”然后在_id哈希对象上使用Data :: UUID.to_string()方法,我能够看到perl和Robo之间匹配的值3T并按照find方法使用_id对象按预期工作。