猫鼬 4.1 混合类型模式更新插入

Mongoose 4.1 mixed type schema upsert

我需要了解如何(如果可能)'upsert' 混合架构类型。 我想使用无模式方法,但我需要根据我可以提供的属性插入或更新行。

这可能吗?

现在我有:

架构定义:

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' 是否存在,结果是我想要 update/insert 的完整对象。

我现在遇到的异常是:

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

TypeError: oldCb is not a function

我直截了当地问,我觉得不可能将这种方法与 'mixed type' 模式一起使用。这是基于知道我的模型不包含 'update(..)' lambda 函数的定义。只是 'save(..)'——它在工作,但只是在没有我需要的逻辑的情况下将数据刷新到 table。

感谢您的回答!

据我目前所知,这是不可能的。 我已经克服了这个问题,只是使用 'mongodb' npm 包而不是按预期工作的 'mongoose'。