如何跳过50条记录,然后通过使用node.js中的findOne查询在mongodb中找到匹配的记录

时间:2018-12-28 12:26:22

标签: node.js mongodb

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');
                            })
                        }
                    });

2 个答案:

答案 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)