dbo.collection('Gps').findOne({$skip: 50}, { captureDateTime :a5},function (err, result) {
if (result) {
dbo.collection("OBD").insertOne({ sensortype: 'OBD', captureDateTime: result.captureDateTime, vehiculeData: b5 }, function (err, result) {
if (err) throw err;
else
console.log('OBD matched with GPS');
})
}
});
它没有得到正确的结果。我想跳过50条记录,然后从剩余的记录中根据捕获的时间匹配记录,并将其推入OBD集合。
我也尝试过
dbo.collection('Gps').aggregate([
{$skip : 50},
{ $match : { captureDateTime : a5 } }
]).toArray( function (err, result) {
if (result) {
dbo.collection("OBD").insertOne({ sensortype: 'OBD', captureDateTime: result.captureDateTime, vehiculeData: b5 }, function (err, result) {
if (err) throw err;
else
console.log('OBD matched with GPS');
})
}
});
答案 0 :(得分:1)
findOne()
不支持skip()
,因为检索的是文档而不是游标。您可以改用以下方法:
db.getCollection('Gps').find({captureDateTime :"a5"}).skip(50).limit(1)
答案 1 :(得分:0)
可能这可以解决您的问题链接:https://www.w3resource.com/mongodb/mongodb-skip-limit.php
dbo.collection('Gps').findOne().skip(50)