2013-04-04 3 views
2

Je veux créer une requête qui incrémenter un compteur dans un objet à l'intérieur d'un tableau, mais dans le cas où l'objet n'existe pas - il sera créé (upsering)

exemple:

{ 
'_id' : 'someId', 
someArray : [..,{'name':'a', 'count':234},..], 
... 
} 

comment un upsert de l'objet { 'name': 'b'} ressemblera? J'utilise Node.js pour le côté serveur si c'est le cas.

+0

Mon conseil: changez la structure de votre base de données, c.-à-d. faites en sorte que 'someArray' soit une collection séparée en référence à votre collection principale. – freakish

Répondre

0

merci @freakish.

J'ai changé ma structure - mais je suis resté avec une collection. au lieu d'un tableau je un objet:

someObject : {'a':234, 'b':1}... 

Je l'ai fait de cette façon parce que je crois comprendre qu'il ya un problème à upsert un élément de tableau avec la inc $ la propriété: How to increment MongoDB document object fields inside an array

cette solution fonctionne pour moi car je ne m'attends pas à plus de 100 éléments dans cet objet

Questions connexes