Node.js MongoDB Upsert mise à jour
Je suis en train d'écrire une petite application qui les scores des mots-clés. Donc, si "beyrouth" et "l'éducation" entrer dans, si elles n'ont pas été vu avant, je veux créer une mongo entrée, et de leur donner une note de 1. S'ils ont, je veux incrémenter leur score par un. Je suis en train de le faire avec une seule commande de mise à jour, mais je pense que j'ai peut-être fais mal.
- Classement est l'objet représentant la base de données
- "clé" est le mot
rankingdb.update(
{keyword:key},
{keyword:key, {$inc:{score:1}}},
{upsert:true, safe:false},
function(err, data) {
if (err) {
console.log(err);
}
else {
console.log("score succeeded");
}
}
);
SyntaxError: Unexpected token {
Pouvez-vous ne pas créer un nouveau document avec un incrément?
source d'informationauteur mradfo21
Vous devez vous connecter pour publier un commentaire.
Votre approche générale est bonne, mais que le message d'erreur indique, vous avez un problème de syntaxe dans votre code.
Essayez plutôt ceci:
Quand un upsert besoins pour créer un objet, il combine les champs à partir du sélecteur (premier paramètre) et la mise à jour de l'objet (deuxième paramètre) lors de la création de l'objet de sorte que vous n'avez pas besoin d'inclure le
keyword
champ dans les deux.Noter que
update()
est obsolète dans le pilote 2.0, vous devez maintenant utiliserupdateOne()
ouupdateMany()
.