使用正则表达式搜索mongodb的_id字段

4
在我的沙盒中,我有一个集合,该集合的唯一键(_id)是来自另一个数据库的唯一字符串。我预先分配了文档,并且它们看起来像这样。
数据如下:
{ _id : "UNIQUEKEY1:1463670000000", data: {value:NaN} }
{ _id : "UNIQUEKEY2:1463670000000", data: {value:NaN} }

我希望能以如下方式查询数据。
{ "_id": {$regex : "/^UNIQUEKEY1.*/i"} }

我读到了Brendan在这里的评论中提到,如果_id是一个字符串,那么可以查询它。

_id提供足够信息时,我不想再添加另一个属性来搜索。


https://dev59.com/8XA75IYBdhLWcg3wboUz#3305687? - Scott Weaver
你为什么要将值嵌套在数据子文档中? - Nic Cottrell
我正在尝试预分配数据,以便它在存储上是连续的。这里有一个很好的视频,解释了这个过程。https://www.mongodb.com/presentations/mongodb-time-series-data-part-2-analyzing-time-series-data-using-aggregation-framework - Tyler
1个回答

4

3
你是说这个代码可以在 ObjectId 类型的 _id 上正常工作(这也是这个问题的关键点)?但是在我的 ObjectId 类型的 _id 上却无法正常工作,我有什么遗漏吗? - newman
@newman - 不,这个 $regex 只适用于字符串。在原问题中,_id 的类型是字符串而不是 ObjectId,如果您的应用程序确保它是唯一的,那么这完全没问题。 - Nic Cottrell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接