2017-10-16 1 views
0

je suit dans le profil de l'utilisateur Meteor:Mise à jour le profil Meteor lors de l'utilisation tableau imbriqué

{ 
    "_id": "dwdtWPFjugF3sTLmE", 
    "emails": [ 
    { 
     "address": "[email protected]", 
     "verified": false 
    } 
    ], 
    "profile": { 
    "name": "Armin", 
    "tasks": [ 
     { 
     "task": "Task one", 
     "completed": false, 
     "created": "2017-10-16T18:48:21.331Z" 
     }, 
     { 
     "task": "Task Two", 
     "completed": false, 
     "created": "2017-10-16T18:48:25.898Z" 
     } 
    ] 
    }, 
    "username": "armin" 
} 

Comment faire une requête par « créé », et mettre à jour le « complété » terrain? ou ce qui ne va pas avec mon approche:

Meteor.users.update(
     { _id: Meteor.userId(), "profile.tasks.created": created }, 
     { 
      $set: { 
       'profile.tasks.completed': completed 
      } 
     } 
    ); 
+2

également - [ne pas utiliser le profil] (https://guide.meteor.com/accounts.html#dont-use-profile). Mettez cette information ailleurs. – chazsolo

Répondre

2

Votre

$set: { 
    'profile.tasks.completed': completed 
} 

devraient utiliser la positional operator '$' comme ceci:

$set: { 
    'profile.tasks.$.completed': completed 
}