7

現在、mongoose を使用してオブジェクトを MongoDB に保存するノード アプリケーションがあります。私はこれに似たモデルを使用しています:

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

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

mongoose.model('Registration', RegistrationSchema);

私のオブジェクトを登録と呼ばれるコレクションに保存します。

登録を次のように保存します。

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 はスキーマをコレクションとペアにしているようで、保存先のコレクションを上書きする方法は実際にはないようです。

誰にもこれに対する解決策はありますか?

4

1 に答える 1

11

複数のモデルで同じスキーマを使用できるため、次のように機能します。

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();
于 2013-02-27T15:12:19.397 に答える