2015-08-07 1 views
1

Je suis à la recherche d'un moyen d'effectuer l'opération upsert de MongoDB dans la ligne de flottaison. Une façon consiste à utiliser la méthode native.Upsert dans la ligne de flottaison ORM (Sails.js)

Model.native(function (err, Collection){ 
    Collection.update({"key": "val"}, {"$set": {"x": "val"}}, {"upsert": true}, function (err, updated){ 
     // do something 
    }) 
}) 

Mais si je ne veux pas utiliser natif, je pouvais voir sur la fonction similaire findOrCreate, ce qui crée une nouvelle entrée si l'élément n'existe pas. Cependant, je ne pouvais pas trouver un moyen de mettre à jour l'élément s'il existe. Est-ce possible ou faut-il utiliser la méthode native uniquement pour cela?

Remarque: J'utilise Voiles 0,11

Répondre

3

A partir de maintenant (v0.10.26) il n'y a aucun moyen de faire un upsert style Mongo en plus de ceux que vous avez mentionné. Cela continue à venir tous les once in a while mais je ne pouvais pas trouver un issue l'adressant directement, alors peut-être que vous pourriez un.

Mise à jour
This issue parle de updateOrCreate et les discussions liées suggèrent que cela pourrait être ajouté bientôt. Je cherchais dans les questions Sails initialement, donc pas étonnant que je n'ai rien trouvé.