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);
});
});
});
しかし、URLを入力すると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に指示するにはどうすればよいですか。