我正在开发应用程序,并且是第一次使用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
功能已过时。
您知道是否可以做我需要的事情?
以下代码可以解决问题:
// 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] 删除。
我来说两句