1

我们有下一个领域模型:

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:当我知道UserIdCommentId时,更新评论文本的正确方法是什么? 问题 2:嵌入元素是否应该有自己的标识符?

谢谢

4

1 回答 1

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);
于 2014-08-20T20:44:02.077 回答