2012-04-12 3 views
1

Je tableau de collection mongo comme ci-dessousmongo db ajouter le nouveau champ à une collecte et mise à jour si le champ existe déjà

[_id] => MongoId Object (
    [$id] => 7f841cef13cfcdba230019e2 
) 
[id] => 33 
[name] => Adam 
[table] => people 

Je veux ajouter un nombre de champs à l'existant

[_id] => MongoId Object (
    [$id] => 7f841cef13cfcdba230019e2 
) 
[id] => 33 
[name] => Adam 
[count] => 0 
[table] => people 

Si count est déjà défini, puis mettre à jour le tableau.

J'ai utilisé la méthode 'update', mais j'ai besoin de changer tout le tableau au lieu d'un seul champ. Comment je peux le faire avec PHP?

+0

Question n'est pas claire. Comment voulez-vous mettre à jour le tableau si le compte est déjà défini? – Thilo

+0

@Thilo Si 'count' n'est pas dans le tableau, ajoutez' count' avec la valeur correspondante à array, puis si count count dans array vient mettre à jour la valeur de 'count'. Le nombre peut être changé tous les jours. Si une nouvelle personne est ajoutée, 'count' ne sera pas ajouté au tableau au début. Il sera ajouté plus tard au tableau. –

+0

Désolé, je ne comprends toujours pas. Voulez-vous que 'count' soit toujours zéro? Ou le nombre d'éléments de ce "tableau"? Et quel tableau est-ce? Il n'y a aucun tableau dans le document que vous montrez. – Thilo

Répondre

2

Si vous demandez comment définir le champ count à une valeur donnée (et la création du champ sinon encore présent) sans changer quoi que ce soit d'autre, vous pouvez utiliser l'opérateur $set:

{ $set : { count: 0 }} 
-2

utilisation update fonction , comme:

$collection->update('$set'=>array("_id" => new MongoID("id of document")), 
        array("new fiels" => "value of field")); 
Questions connexes