猫鼬,如何清空一个集合
我有以下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('');
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();
点是,它工作正常,并将所需的数据保存到我的集合,但是如果我不删除每次执行的数据,数据库将继续增长。所以我打算实现类似的东西
db.blocks.remove({}) //where blocks is my collection
哪个在mongo控制台中工作正常。但我找不到如何在代码中实现这一点
回答如下:您可以将deleteMany运算符与空过滤器一起使用。
db.collection.deleteMany({})
或与您的模型:
await BlockModel.deleteMany({})
猫鼬,如何清空一个集合
我有以下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('');
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();
点是,它工作正常,并将所需的数据保存到我的集合,但是如果我不删除每次执行的数据,数据库将继续增长。所以我打算实现类似的东西
db.blocks.remove({}) //where blocks is my collection
哪个在mongo控制台中工作正常。但我找不到如何在代码中实现这一点
回答如下:您可以将deleteMany运算符与空过滤器一起使用。
db.collection.deleteMany({})
或与您的模型:
await BlockModel.deleteMany({})