【问题标题】:Saving Mongoose object into two collections将 Mongoose 对象保存到两个集合中
【发布时间】:2013-02-13 10:40:45
【问题描述】:

目前我有一个节点应用程序,它使用猫鼬将对象保存到 MongoDB 中。我正在使用与此类似的模型:

var mongoose = require('mongoose')
    , Schema = mongoose.Schema;

var RegistrationSchema = new Schema({
        name:{ type: String, default: '', trim: false}
});

mongoose.model('Registration', RegistrationSchema);

这会将我的对象保存到一个名为 registrations 的集合中。

我这样保存我的注册:

var registration = new Registration(data);

      registration.save(function(err) {
        if (err) {
          return callback({
            source: 'data_save',
            type: 'admin',
            errors: err
          });
        }
        else {
          return callback(null, data);
        }
      });

我还想在创建该对象时将其保存到另一个具有不同名称的集合中,例如 registrations_new 或类似的名称。我想将此条目复制到新集合中。我尝试在连接字符串中添加另一个集合,这完全破坏了 mongo 部分,我尝试创建一个名为 New_Registration 的新模型,加载该架构并尝试单独保存它,但我有另一个问题。似乎 Mongoose 将模式与集合配对,并且确实无法覆盖它保存到的集合。

有人有解决办法吗?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您可以在多个模型中使用相同的架构,因此可以使用以下方法:

    var RegistrationSchema = new Schema({
        name:{ type: String, default: '', trim: false}
    });
    
    var Registration = mongoose.model('Registration', RegistrationSchema);
    var New_Registration = mongoose.model('New_Registration', RegistrationSchema);
    
    var registration = new Registration(data);
    registration.save();
    
    var new_registration = new New_Registration(data);
    new_registration.save();
    

    【讨论】:

    • 先生,您是救生员。非常感谢。
    猜你喜欢
    • 2017-10-08
    • 2021-01-25
    • 2021-04-22
    • 2020-11-15
    • 2019-12-24
    • 2018-09-15
    • 2020-07-06
    • 2019-06-23
    • 2015-11-01
    相关资源
    最近更新 更多