Javascript Mongodb:如何从数据库中获取第一个文档,然后将其删除

Javascript Mongodb:如何从数据库中获取第一个文档,然后将其删除,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在开发一个应用程序,我第一次使用MongoDB 我在使用上遇到了一些问题,因为文档似乎过时了,甚至这里的答案似乎与以前的版本有关,所以有几个函数不推荐使用 我想获取并删除数据库中的第一个文档 我尝试了以下代码: const mongodb = require('mongodb'); const MongoClient = mongodb.MongoClient; const url = <my mongodb url>; MongoClient.connect(url, { u

我正在开发一个应用程序,我第一次使用MongoDB

我在使用上遇到了一些问题,因为文档似乎过时了,甚至这里的答案似乎与以前的版本有关,所以有几个函数不推荐使用

我想获取并删除数据库中的第一个文档

我尝试了以下代码:

const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
const url = <my mongodb url>;

MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, function (err, client) {
    if (err) {
        console.error('Unable to connect to the mongoDB server. Error:', err);
    } else {
        const db = client.db('myFirstDb').collection('myList');

        db.find().toArray((err, items) => {
            console.log(items.length)
        });

        db.updateOne({}, {$pop: {myList: -1}}, function (err, result) {
            console.log('Done');
        });

        client.close();
    }
});
const mongodb=require('mongodb');
const MongoClient=mongodb.MongoClient;
常量url=;
connect(url,{useNewUrlParser:true,useUnifiedTopology:true},函数(err,客户端){
如果(错误){
console.error('无法连接到mongoDB服务器。错误:',err);
}否则{
const db=client.db('myFirstDb')。collection('myList');
db.find().toArray((错误,项目)=>{
console.log(items.length)
});
db.updateOne({},{$pop:{myList:-1}}),函数(err,result){
console.log('Done');
});
client.close();
}
});
但什么也没发生。下面是一个例子:

db.students.update({u id:1},{$pop:{scores:1}})

但它删除数据库中一个文档数组的一个元素;在我的情况下,我需要弹出数据库的第一个条目。无论如何,正如我所说的,文档没有更新,因为它使用了不推荐使用的
update
函数


您知道是否可以执行我需要的操作吗?

以下代码可以完成此操作:

// Getting the first document
var firstDoc = db.collection.findOne();

// Deleting the first document
db.collection.remove(firstDoc["_id"]);
删除前:

{ "_id" : ObjectId("5d88201138db7cf8d3f75cd1"), "value" : 1 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd2"), "value" : 2 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd3"), "value" : 3 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd4"), "value" : 4 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd5"), "value" : 5 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd2"), "value" : 2 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd3"), "value" : 3 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd4"), "value" : 4 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd5"), "value" : 5 }
移除后:

{ "_id" : ObjectId("5d88201138db7cf8d3f75cd1"), "value" : 1 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd2"), "value" : 2 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd3"), "value" : 3 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd4"), "value" : 4 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd5"), "value" : 5 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd2"), "value" : 2 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd3"), "value" : 3 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd4"), "value" : 4 }
{ "_id" : ObjectId("5d88201138db7cf8d3f75cd5"), "value" : 5 }

是否要删除
myList
集合或删除
myList
集合中的第一个文档?myList集合中的第一个元素。这意味着您要删除的文档不是元素(字段),使用
update
函数的方法是从文档字段中删除数组元素。看一看有。另外,我认为您混淆了MongoDB语法和。它成功了,谢谢!无论如何,
remove
函数不推荐使用,所以我不得不使用
deleteOne