我有一个名为lights的mongodb集合,这个集合中的一个文档看起来像,
{
"_id": "50eea4a53004cc6233d12b02",
"Physicalentity": "Light",
"Sensor": "Tinkerforge",
"Unit": "Lux",
"value": "47.2",
"time": "12:23:17",
"date": "10.01.2013"
},
我想根据时间检索文档,因此为了实现这一点,我写了以下内容:
app.get('/lights/:time', function(req, res) {
var time = req.params.time;
console.log('Retrieving value: ' + time);
db.collection('lightsensor', function(err, collection) {
collection.findOne({'time':new BSON.ObjectID(time)}, function(err, item) {
res.send(item);
});
});
});
但是当我输入网址时http://localhost:3000/lights/12:23:17
我得到错误:Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
问题究竟出在哪里?
是否可以输入时间并允许 mongodb 查找 URL 中指定的时间最近的文档。
例如,我输入http://localhost:3000/lights/12:23:20
这不在我的收藏中,但存在时间为 12:23:17 的文档。
我如何告诉 mongodb 找到包含最接近传递参数的值的文档。