我们有下一个域名模型:
public class User
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public List<Comment> Comments { get; set; }
}
public class Comment
{
public ObjectId Id { get; set; }
public string Text { get; set; }
}
我们在项目中使用MongoDB CSharp驱动程序。 我们收集了“用户”以及与特定用户相关的所有评论,我们将其存储在此单个文档中。
问题1:当我知道 UserId 和 CommentId 时,更新评论文字的正确方法是什么? 问题2:嵌入元素应该有自己的标识符吗?
由于
答案 0 :(得分:0)
这是您需要的代码:
var update = Update.Set("Comments.$.Text", "new comment text");
var query = Query.And(
Query<User>.EQ(u => u.Id, userId),
Query<User>.ElemMatch(u => u.Comments, eq => eq.EQ(c => c.Id, commentId)));
userCollection.Update(query, update);