我需要了解(如果可能的话)我是如何做到这一点的。混合模式类型。 我想使用无模式方法,但我需要根据我可以提供的属性插入或更新行。
这可能吗?
现在我有:
架构定义:
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
我问道,我觉得不可能将这种方法用于混合型'架构。这是基于我知道我的模型不包含'更新(..)'的定义。 lambda函数。只是'保存(..)' - 这是有效的,但只是将数据刷新到表中而没有我需要的逻辑。
感谢您的回答!
答案 0 :(得分:0)
据我所知,这是不可能的。 我使用' mongodb'克服了这个问题。 npm包而不是'mongoose'这是按预期工作的。