2015-10-20 73 views
1

我需要找出如何(如果可能)我'upsert'混合模式類型。 我想使用無模式的方法,但我需要插入或更新基於我可以提供的屬性的行。Mongoose 4.1混合類型架構upsert

這可能嗎?

現在我有:

模式DEF .:

var schema = new mongoose.Schema 
    ({ 
      any: mongoose.Schema.Types.Mixed 
     }, 
     { 
      strict: false 
     }); 

當我做:

var modelo = new Modelo(); 

    modelo.markModified('extid'); 

    var outcome = modelo.update(
     {extid: result.extid}, 
     result, 
     {upsert: true}, 
     function (err, raw) { 
      if (!err) { 
       console.log("persisted"); 
      } else { 
       console.log(err); 
      } 
     }); 

結果是完整的對象,我想更新/插入根據是否「 extid'存在。

現在我收到的例外是:

oldCb(error, result ? result.result : { ok: 0, n: 0, nModified: 0 }); 
    ^

TypeError: oldCb is not a function 

我問straigtly通過我有一種感覺,它不能夠使用以「混合型」的架構這一做法。這是基於知道我的模型不包含'update(..)'lambda函數的定義。只需'保存(..)' - 這是工作,但只是刷新數據到表中,而不需要我需要的邏輯。

感謝您的回答!

回答

0

據我目前的瞭解,這是不可能的。 我已經克服了這個只是使用'mongodb'npm包,而不是'mongoose'這是按預期工作。