C# driver 2.0 Mongodb UpdateOneAsync
`
public class Student
{
public long StudentId {get; set;}
public string Fname {get; set;}
public string Lname {get; set;}
public List<ObjectId> CoursesList {get; set;}
public int IQ {get;set;}
}
public class Courses
{
[BsonId]
public ObjectId Id { get; set; }
public string CourseNumber{get; set;}
public string CourseName{get; set;}
}
`
Comment puis-je ajouter/ajouter un coursier Id de liste de Cours(qui peut être nulle pour la première fois) d'un Étudiant de l'objet
PS: je sais comment définir un champ à l'aide de commande ci-dessous. J'espère que c'est sur les lignes similaires pour le problème ci-dessus
await StudentCollection.UpdateOneAsync(a => a.StudentId == studentId, Builders<Student>.Update.Set( a => a.IQ,90));
Tu veux dire quelque chose comme ceci: les Constructeurs<Étudiant>.La mise à jour.Ensemble( a => un.CourseList, new []{ObjectId})
de plus comme
Les constructeurs de<Étudiant>.La mise à jour.AddToSet( a => un.CourseList, new []{newCourse.Id})
de plus comme
Builders<Student>.Update.AddToSet( a => a.CourseList, newCourse.Id})
où newCourse est le nouveau sûr de l'objet créé et je suis en train d'ajouter son cours Id dans la liste de cours de l'étudiant de l'objetLes constructeurs de<Étudiant>.La mise à jour.AddToSet( a => un.CourseList, new []{newCourse.Id})
OriginalL'auteur user1789710 | 2015-04-14
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez déjà découvert, le code C# pour utiliser $addToSet est:
Toutefois, $addToSet ne va pas fonctionner si le CourseList membre a été enregistré dans la collection comme un null. Le serveur requiert que la valeur de $addToSet être un tableau (il peut être un tableau vide).
La solution la plus simple consiste à enregistrer dans une liste vide pour CoursesList au lieu de null quand il n'y a pas de cours.
Builders<Student>.Update.AddToSetEach(s => s.CoursesList, courseList);
a fonctionné pour moi. Je crois que je n'ai pas de mentionner de façon claire dans ma question que je voulais ajouter/ajouter une nouvelle liste de cours de création. Merci !OriginalL'auteur Robert Stam
C'est de travailler pour moi. Lorsque vous définissez "Liste" de ce genre, elle sera vide et fonctionne avec AddToSet/Push méthodes.
OriginalL'auteur fatihyildizhan