use*_*710 8 c# mongodb mongodb-.net-driver
`
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;}
}
Run Code Online (Sandbox Code Playgroud)
`
如何在Student对象的课程列表(第一次可能为null)中添加/附加courser Id
PS:我知道如何使用下面的命令设置字段.我希望它与上述问题类似
await StudentCollection.UpdateOneAsync(a => a.StudentId == studentId, Builders<Student>.Update.Set( a => a.IQ,90));
Run Code Online (Sandbox Code Playgroud)
Rob*_*tam 13
正如您已经发现的那样,使用$ addToSet的C#代码是:
var filter = Builders<Student>.Filter.Eq(s => s.StudentId, studentId);
var update = Builders<Student>.Update.AddToSet(s => s.CoursesList, courseId);
var result = await collection.UpdateOneAsync(filter, update);
Run Code Online (Sandbox Code Playgroud)
但是,如果CourseList成员已作为null存储在集合中,则$ addToSet将无法工作.服务器要求$ addToSet的现有值是一个数组(它可以是一个空数组).
最简单的解决方案是在没有课程时只存储CoursesList的空列表而不是null.
| 归档时间: |
|
| 查看次数: |
12107 次 |
| 最近记录: |