0
こんにちは、私はnodejsとmongooseを初めて使っています。次のメソッドを使用して、一括挿入でmongoデータを更新しようとしています。Mongoose Bulk upsertが動作しない
"use strict";
var mongo = require('../models/tracking_mongo');
var Schema = mongo.trackingMasterMongoosePoc.Schema;
//create a schema
var userwise_tracking_events = new Schema({
activities : {},
summary : {},
userId : Number,
counter : Number,
created : Date,
modified : Date
});
let collection = 'userwise_tracking_events';
let UserwiseTrackingEvents = mongo.trackingMasterConnPoc.model(collection, userwise_tracking_events);
UserwiseTrackingEvents.updateCollectionStream = function(condition, params, options, callback){
var Bulk = UserwiseTrackingEvents.collection.initializeUnorderedBulkOp();
Bulk.find(condition).upsert().update(params);
Bulk.execute(callback);
};
module.exports = UserwiseTrackingEvents;
上部コードはうまく機能しますが、これはバルクインサートを使用した場合の問題を解決しませんでした。
次に、バルク変数をグローバルにすることで変更しました。
"use strict";
var mongo = require('../models/tracking_mongo');
var Schema = mongo.trackingMasterMongoosePoc.Schema;
//create a schema
var userwise_tracking_events = new Schema({
activities : {},
summary : {},
userId : Number,
counter : Number,
created : Date,
modified : Date
});
let collection = 'userwise_tracking_events';
let UserwiseTrackingEvents = mongo.trackingMasterConnPoc.model(collection, userwise_tracking_events);
var Bulk = UserwiseTrackingEvents.collection.initializeUnorderedBulkOp();
UserwiseTrackingEvents.updateCollectionStream = function(condition, params, options, callback){
Bulk.find(condition).upsert().update(params);
Bulk.execute(callback);
};
module.exports = UserwiseTrackingEvents;
ここで、定義されていないエラーを取得することは機能ではありません。私は
はconsole.log(UserwiseTrackingEvents.collection)をチェック
。
NativeCollection.collectionがnullの場合、結果を通知します。
私が間違っていることを教えてください。
私はこれに取り組むための別の方法がありますが、私は特に私がこの質問で間違っていることを望んでいます。
感謝:)
バルクが初期化されていますが、バルーンが初期化されたときにmongooseが接続を作成できません。 –