我在MongoDB中遇到查询问题。
我有该结构的文件
{
"_id" : LUUID("5eca9329-6525-e544-bb27-f1797def8110"),
"StartTimestamp" : NumberLong(193),
"EndTimestamp" : NumberLong(193),
}
_id是从GUID(C#)生成的。问题是当我想在mongo控制台中进行本机查询时。
我的查询
db.getCollection('Object').findOne(
{
"_id": LUUID("5eca9329-6525-e544-bb27-f1797def8110")
})
然后我没有结果
答案 0 :(得分:0)
Mongo对GUID的支持目前有限。 C#驱动程序当前正在以二进制表示形式编写GUID,其中GUID的前三个字段是小端,而一些其他驱动程序使用大端表示。因此,根据存储GUID的驱动程序,字符串表示形式会有所不同,请参阅此JIRA票证以获取更多详细信息,
简而言之,由于您的GUID是由C#创建的,因此它将存储为类型为3的BinData对象,如下所示。
BinData(3,"KZPKXiVlROW7J/F5fe+BEA==")
这意味着,为了检索您的记录,您必须运行以下查询:
db.getCollection('Object').findOne(
{
"_id": BinData(3,"KZPKXiVlROW7J/F5fe+BEA==")
})
或者,您可以在启动Mongo shell时从GitHub加载帮助程序脚本:
mongo --shell uuidhelpers.js
加载后,您可以像这样查询GUID:
db.data.find({_id:CSUUID("5eca9329-6525-e544-bb27-f1797def8110")})