node.js - Mongoose,如何清空集合

标签 node.js mongodb mongoose

我有以下 hapi.js 服务器

const Hapi = require('hapi')
const Mongoose = require('mongoose')
const Wreck = require('wreck');


const server = new Hapi.Server({
    "host": "localhost",
    "port": 3000
})

Mongoose.connect('mongodb://localhost/myDB', { useNewUrlParser: true })

const BlockModel = Mongoose.model('block', {
    height: Number,
    size: Number,
    time: Number
})

server.route({
    method: "GET",
    path: "/",
    handler: async (request, h) => {

        Mongoose.model.blocks.remove({});    //<------This is the part of the code I intend to use to delete the collection

        const { res, payload } = await Wreck.get('https://api.url');
        let myJson = JSON.parse(payload.toString()).blocks
        console.log(myJson)
        for (let i = 0; i<myJson.length; i++) {
            var block = new BlockModel({  height: myJson[i].height, size: myJson[i].size, time: myJson[i].time });
            block.save();
        }
        console.log(myJson)

        return "test"
    }
})



server.start();

重点是,它工作正常并将所需的数据保存到我的集合中,但是如果我不在每次执行时删除数据,ofc 数据库将继续增长。所以我打算实现类似的东西

db.blocks.remove({}) //where blocks is my collection

这在 mongoconsole 中运行良好。 但我找不到如何在代码中实现这个

最佳答案

您可以将 deleteMany 运算符与空过滤器结合使用。

db.collection.deleteMany({})

或使用您的模型:

await BlockModel.deleteMany({})

关于node.js - Mongoose,如何清空集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863147/

相关文章:

javascript - 如何在 Electron 上请求 MIDI 设备权限?

node.js - NodeJS 中是否允许使用装饰器?

mongodb - mongodb中如何将字符串转换为日期?

javascript - 使用 node.js 将 excel 中的所有工作表转换为 Json

javascript - 如何在 while 循环内异步发出后续 http 请求而不使用 Promise 和 async/await?

mongodb - 分布式系统术语 : node, 分片、集群

mongodb - 如何在 MongoDB 中快速更改字段或更新?

node.js - 在node.js中使用forEach函数时出现问题

node.js - 使用 node-cron 使用 mongoose 更新多个文档

node.js - Mongoose 模式对象中的时间格式