所以在我的MongoDB测试中,_id字段是一个唯一的字符串,格式为“SensorSN:YrMonthDay”
我想查询的是2016年3月的所有数据。但是我无法正确使用正则表达式。
所以这里有一些示例_ids: 12345678:2016325 87654321:2016325
基本上我想退回两份文件,因为它们是在3月份。
我的第一次尝试类似于db.collection.find({'_ id':'/:20163 /'}),到目前为止没有运气。
谢谢!
答案 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/