2015-10-02 13 views
11

動作しない私はにそれらのコード実行してみてくださいを持って保存MongoDBのにオブジェクトマングース.SAVE()

.save()は決して成功しませんでした。コードは正常に実行されます。

.save()方法が機能しません。

var conn = mongoose.createConnection(mongoUrl, {auth: {authdb: "admin"}}); 
conn.on('error', function (err) { 
    throw err; 
}); 
conn.once('open', function callback() { 
    console.log("connected to " + mongoUrl); 
    var cacheSchema = mongoose.Schema({}, {strict: false}); 
    cacheSchema.set('collection', 'caches'); 
    // you need to specify which connection is uing. 
    var Cache = conn.model('cache', cacheSchema); 
    var measure = new Cache(); 
    measure['test'] = "test"; 
    measure.save(function(err){ 
     console.log('test'); 
    }); 
}); 
+1

'.save()は成功しませんでした。あなたはそれにコールバックを与えていませんでした。 –

+0

どうしたの?エラーを投稿する –

+0

コールバックを編集しました。私は、console.log()にブレークポイントを設定します。それは決してそこに止まらなかった – sh977218

答えて

15

私はちょうど私のコードでは、同様の問題に遭遇しました。私の場合、私は自分のユーザー文書内のオブジェクトを扱っていました。 user.save()の前にuser.markModified('object')を実行して、変更がデータベースに保存されていることを確認しなければなりませんでした。 実行中の理論では、Mongooseがデータベースから未設定または削除されたアイテムを自動的に追跡していないということです。

+0

ありがとうございます!完璧に働く、私はこれで多くの時間を無駄にした – user3655266

3

マングースからドキュメントのthis partを読み、次のことを試してください:

var measure = new Cache({test:'teste'}); 
    // or measure.set('test', 'teste'); 
    measure.save(function (err) { 
        console.log(err); 
       }); 

あなたがいずれかがあるかどう問題を見ることができます。問題は、使用している

更新:

var Cache = conn.model('cache', cacheSchema); 

代わりの

var Cache = mongoose.model('cache', cacheSchema); 
+0

私はこれをして、私はこの行に到達することができません:console.log(エラー) – sh977218

+0

コードブレークライン?またはすべての方法を行く? –

+1

console.log(err)にブレークポイントを設定しました。それは決してそこに届くことはない。プログラムは終了しませんでした。それは永遠に動いているように見えます。 – sh977218