2016-07-18 2 views
0

C'est un barrage frustrant. J'ai besoin de mettre à jour et d'incrémenter les valeurs d'un tableau à l'intérieur d'une collection. Pour ce faire, j'accéder à la collection en utilisant la syntaxe MongoDB comme ceci:Pourquoi ma mise à jour du client ne fonctionne-t-elle pas?

var selectedBargain = Session.get('selectedBargain'); 

//Confirm that Session.get is successful 
console.log("SelectedID is: "+selectedBargain); 

buyList.update(selectedBargain, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update(selectedBargain, {$set: {messageToggle: 0} }); 

La console imprime avec succès: SelectedID est: nEXHQFEt6kZ9Wzvg3

Étrangement la requête de mise à jour fonctionne avec succès quand je le lance via la console comme:

buyList.update("nEXHQFEt6kZ9Wzvg3", {$inc: {nrOfUnreadMessages: 1} }) 

J'ai essayé de changer mon code pour:

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} }); 

... à Pas de résultat. Quelqu'un peut-il me dire pourquoi cela ne fonctionne pas dans mon code?

Où vais-je mal?

+1

Vous devez déjà avoir coché. mais demande quand même. Êtes-vous sûr de vous connecter à la même DB en cours d'exécution dans le code et la console? – KaSh

+0

@KaSh Eh bien, je n'ai qu'une seule liste d'achat. Et je suis et à mettre à jour uniquement via la console. – SirBT

+0

Lorsque vous dites que cela fonctionne correctement lorsque vous l'exécutez dans la console, je suppose que cela signifie dans Chrome/Firefox? Le '$ set' fonctionne-t-il, et seul' $ inc' échoue, ou bien les deux échouent-ils? Que voyez-vous dans la section WS dans Dev Tools/Network sur Chrome lorsque vous exécutez le code par rapport à lorsque vous exécutez via la console JS? Vous devriez voir les mises à jour de DDP dépasser. – CodeChimp

Répondre

0

@CodeChimp, @Kash Je suis terriblement désolé les gars. Je l'ai compris. Il semble que je n'ai jamais retracé la séquence du code jusqu'à la fin. Plus loin (en dehors du champ d'application de ce que je posté ici) était une autre fonction de la requête:

buyList.update(ChatSubMessagesId, {$set: {nrOfUnreadMessages: 0} }) 
buyList.update(ChatSubMessagesId, {$set: {messageToggle:1} }) 

Le résultat est qu'il renverserait le code désiré être: moi

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} }); 
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} }); 

Sa prise tant heures à réaliser. Tellement embarrassant!