如何使用mongoose将我的集合放入mongoDB中?

时间:2018-04-03 18:45:28

标签: node.js mongodb

我已使用以下代码与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查询,但它不起作用。

2 个答案:

答案 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);
         });
    )};
});

我希望这会对你有所帮助。