Mungo findOneAndUpdate Upsert _id null?

Ich würde gerne eine einzelne Methode, die Sie entweder erstellt oder aktualisiert ein Dokument für eine Politik. Suchen und versuchen, verschiedene Techniken wie diese eine, ich habe mit einer null _id für mein Dokument. Mit findByIdAndUpdate hat eine ähnliche Wirkung.

Sehe ich ein Dokument eingefügt, in der Sammlung, aber das _id Feld null ist:

exports.savePolicy = function (plcy, callback) {
    console.log('priority is : ' + plcy.priority)
    try {
        var policy = new Policy(plcy);
        var query = {_id: plcy._id};  //this may be null
        var update = {
            name: plcy.name || defaults.policyDefaults.name,
            longDescription: plcy.longDescription || defaults.policyDefaults.longDescription,
            shortDescription: plcy.shortDescription || defaults.policyDefaults.shortDescription,
            priority: plcy.priority, colorHex: plcy.colorHex || defaults.policyDefaults.colorHex,
            settings: plcy.settings || [],
            parentPolicyId: plcy.parentPolicyId || null
        }

        Policy.findOneAndUpdate(query, update, {upsert: true}, function (err, data) {
            callback(err, data);
        });

    } catch (e) {
        log.error('Exception while trying to save policy: ' + e.message);
        callback(e, null);
    }

Gibt es etwas, das getan werden kann, um die _id nicht null sein, wenn es sich nicht um ein update?

  • haben Sie jemals herausfinden? Ich war immer das gleiche problem. Ich endete die überprüfung für die _id manuell und rufen dann entweder findOneAndUpdate für einen update-oder create() für einen neuen Datensatz.
InformationsquelleAutor binarygiant | 2013-06-21
Schreibe einen Kommentar