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

聪明的老鼠

我正在开发应用程序,并且是第一次使用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();
    }
});

但是什么也没发生。文档使这个例子:

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

但它会删除数据库中一个文档的数组元素;就我而言,我需要弹出数据库的第一个条目。无论如何,正如我所说,文档未更新,因为它使用的update功能已过时。

您知道是否可以做我需要的事情?

Himanshu Sharma

以下代码可以解决问题:

// 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 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在集合中获取第一个值然后将其删除的最快方法(大型集合)

如何在实时数据库Firebase中获取第一个子节点

如何获取每个id_ope的数据库的第一个值?

如何使用Python获取第一个8位CUSIP(compustat数据库)?

从sqlite数据库中获取第一个和最后一个元素

MongoDB在聚合查询中获取第一个和最后一个文档

如何获取和删除数据结构中的第一个元素?

如何从android studio的firebase实时数据库中的listview中的第一个获取最后添加的数据

使用 Firebase 数据库中的键填充 Spinner,然后从第一个选择中填充另一个 Spinner

从数据库中选择只是可以获取第一个数据

使用 ChildAdded 使用 swift 4 从 firebase 数据库中获取第一个键

我正在尝试从android中的SQL数据库获取第一个Min值

从MongoDB中的所有文档中获取数组字段的第一个元素的总和

从集合中获取第一个元素并将其删除

我需要获取数据库的第一个登录名,然后确定要延迟多少分钟并进行总结。爪哇

从数据库中获取一行,从该行中删除一个元素,然后将该行更新回数据库

如何在数据库中的第一个日期以来的所有 15 日向后查询?

如何故障恢复到Amazon Aurora全局数据库中的第一个区域

如何在与第一个模型(父模型)数据库实体相关的关系模型中插入记录

如何从数据库中获取多个数据并将其存储在一个变量中?

如何在SQL数据库中选择第一个奇数/偶数主键

如何设置数据库表填充的选择的第一个值?

如何过滤 MongoDB 中的文档,然后获取一个忽略重复项的文档?

在DetailsView中的数据库绑定DropdownList的第一个索引处添加项目

Django updateView 总是更新数据库中的第一个元素

获取表行的第一个td ID,然后将其映射

如何将我的第一个输入框链接到数据库中已存在的另一个输入框

我想在数据库中搜索一个孩子,然后将其删除,但在这里不起作用

如何从一个数据库中提取数据,进行操作,然后将其插入Rails中的另一个数据库中?