我已使用以下代码与MongoDB建立联系。
mongoose.connect('mongodb://localhost:27017/samplecustomfields')
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));
我在app.js文件中创建了模式模型和加载模型。你可以看到下面的代码
const customfields = [
{
'id': 104,
'name': '[Sample] Utility Caddy',
'customfields': [
{
'id': 7,
'product_id': 104,
'name': 'Sample Utility',
'text': 'canddy ofsuc'
}
}
]
require('./models/customfieldlists');
const productfields = mongoose.model('fields');
app.get('/api/products', (req, res, next) => {
productfields.insertMany(customfields, function(error, docs) {
console.log('done');
});
res.send(customfields);
});
如何在调用“insertMany”查询后首先删除“fields”集合。每当我收到'/ api / products'这个请求时,都会发生这种情况。
我已将代码“productfields.dropCollection('fields');”上面的insertMany查询,但它不起作用。
答案 0 :(得分:1)
我从下面的网址中发现,没有使用mongoose删除集合的方法,但是您可以从集合中删除数据。
<强> How to drop a database with Mongoose? 强>
以下是解决我问题的代码
productfields.remove({}, function(err) {
productfields.insertMany(customfields, function(error, docs) {
res.send(docs);
});
});
答案 1 :(得分:0)
app.get('/api/products', (req, res, next) => {
// Drop the 'fields' collection from the current database
mongoose.connection.db.dropCollection('fields', function(err, result) {
productfields.insertMany(customfields, function(error, docs) {
console.log('done');
res.send(customfields);
});
)};
});
我希望这会对你有所帮助。