comment mettre à jour une Mongo.db collection meteor.js?
J'ai une collection que j'ai besoin de mettre à jour lorsque l'utilisateur appuie sur un bouton.
J'ai juste besoin de changer une variable à l'autre.
Dans la console, cette ligne de code fonctionne:
db.users.update({username : "Jack"},{age : 13, username : "Jack"});
Mais quand je l'ai mis dans ce code:
Template.body.events({
'click #updateAge' = function() {
{
alert();
db.users.update({username : "Jack"},{age : 13, username : "Jack"});
}
}
})
dans mon fichier JavaScript pour Meteor.js, cela ne sert à rien du tout (je n'ai pas de message d'erreur, et je vois l'alerte, mais la mise à jour ne fonctionne tout simplement pas).
J'ai lu à travers le Météore de la Documentation sur la mise à jour, mais je n'arrive pas à le faire fonctionner.
Quelqu'un sait ce que je fais mal?
Le fait simplement à l'aide des utilisateurs.mise à jour (...)? Il y a une solution ici: stackoverflow.com/questions/14016149/...
Je pense que Mongo a besoin d'un sélecteur, c'est pourquoi j'ai mon {nom d'utilisateur : "Jack"}, mais ils sont à l'aide de la même chose, je suis... à Moins que voulez-vous dire, le Météore de la balise en face de l'utilisateur.la mise à jour?
Je pense que Mongo a besoin d'un sélecteur, c'est pourquoi j'ai mon {nom d'utilisateur : "Jack"}, mais ils sont à l'aide de la même chose, je suis... à Moins que voulez-vous dire, le Météore de la balise en face de l'utilisateur.la mise à jour?
OriginalL'auteur Ian Wise | 2014-08-01
Vous devez vous connecter pour publier un commentaire.
Trouvé le problème.
Depuis que j'ai défini ma base de données dans mon lib.js fichier
users = new Meteor.collection("users");
Je n'ai pas besoin de mettre un db en face de la
db.users.update({_id : "Jack"},{...})
. J'ai aussi besoin de trouver un document à l'aide de la donnée mongo_id
, pas l'identificateur"username"
.donc le code approprié serait
$set
ici pendant la mise à Jour du document ?, et si nous ne savons pas_id
je veux dire si nous sommes en sélectionnant dynamially ?Il a été un long temps depuis que j'ai utilisé météore ou mongo, mais si je me souviens bien $jeu de mettre à jour uniquement les valeurs spécifiées (l'âge et le nom d'utilisateur dans ce cas). Si il y a une autre valeur, tels que "genre", $ensemble n'efface pas que, puisque nous n'avons pas de définir le "genre" ici.
bon got it @IanWise merci pour le partage de l'information
OriginalL'auteur Ian Wise
Dans mongodb, vous devrez utiliser une mise à jour opérateur(par ex:
$set
). Sinon, votre document sera remplacé par la mise à jour de l'objet que vous êtes de passage(je ne suis pas certain de ce que vous voulez). Je pense que, à ses œuvres, même dans le météore. Donc, vous aurez à faire quelque chose comme ceci:Ressemble vous en avez besoin. Voir: stackoverflow.com/questions/19027893/updating-meteor-users
OriginalL'auteur
Cela pourrait ne pas être le problème comme vous l'avez dit vous ne recevez pas un message d'erreur mais pour en être sûr: avez-vous déjà permis à l'utilisateur de mettre à jour les documents dans la collection pour l'utilisateur?
Quelque chose comme:
(en collections/permissions.js)
})
OriginalL'auteur Jaspermid