Il existe un document, et l'un de ses attributs est un tableau de documents. Je souhaite ajouter un document au tableau, s'il existe, il ne sera pas ajouté. Comment juger s'il existe ou non, c'est tous les attributs. sont les mêmes ? Pouvez-vous spécifier un attribut
{_id:0,
user:[{id:1,name:a}]
}
Par exemple, pour l'enregistrement ci-dessus, je souhaite ajouter des données à utilisateur, si l'identifiant est 1, cela signifie qu'il existe déjà, donc il ne sera pas ajouté, sinon il sera ajouté au tableau utilisateur
$addToSet peut répondre à cette exigence
Merci
L'unicité du sous-document dont vous avez besoin ne peut pas être obtenue par $addToSet. Il y a deux idées de référence :
1. Essayez de voir si vous pouvez créer un index composite unique en entreprise
Par exemple : créez un index composite unique sur le nom et l'user.id du texte {_id, name, number,user[{id,name}]}
2. Contrôle des codes
Avant la mise à jour, utilisez $ne ou $nin pour déterminer si user.id existe dans l'identifiant existant. S'il n'existe pas, vous pouvez mettre à jour.
Pour référence.
J'adore MongoDB ! Amusez-vous !