MongoDB查询_id

时间:2016-12-08 15:01:05

标签: mongodb

所以在我的MongoDB测试中,_id字段是一个唯一的字符串,格式为“SensorSN:YrMonthDay”

我想查询的是2016年3月的所有数据。但是我无法正确使用正则表达式。

所以这里有一些示例_ids: 12345678:2016325 87654321:2016325

基本上我想退回两份文件,因为它们是在3月份。

我的第一次尝试类似于db.collection.find({'_ id':'/:20163 /'}),到目前为止没有运气。

谢谢!

2 个答案:

答案 0 :(得分:2)

取消引号,find正在寻找与之完全匹配的字符串,而不是进行正则表达式搜索。

db.collection.find({ '_id': /:20163/ })

db.collection.find({ _id: /:20163/ })

对我来说都很好!

只有在您的示例文档为:

时,您的案例才会匹配
{ _id: "/:20163/" }

答案 1 :(得分:1)

删除引号

db.collection.find({ _id: /:20163/ });

或尝试使用正则表达式 -

db.collection.find({ _id: { $regex: /:20163/ } });

https://docs.mongodb.com/manual/reference/operator/query/regex/