首先,对不起我的英语;)
我有下一个类代表一个可以拥有许多电子邮件帐户的人,并且每个帐户都有其各自的电子邮件
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
public EmailAccount[] Accounts { get; set; }
}
public class EmailAccount
{
public string Id { get; set; }
public string Name { get; set; }
public Message[] Messages { get; set; }
}
public class Message
{
public string Date { get; set; }
public string Content { get; set; }
}
我需要替换特定电子邮件帐户的消息,但我需要先按人员 ID 和帐户 ID 进行选择,如何使用 Mongodb c# 驱动程序执行此操作,我做了这样的事情但没有成功:
var collection = _mongoDatabase.GetCollection<Person>("Person");
var query = Query.EQ("Person._id", "20");
var bsonMessages = BsonDocumentWrapper.CreateMultiple(new[]
{
new Message(DateTime.Now.ToString(CultureInfo.InvariantCulture), "Test 55"),
new Message(DateTime.Now.ToString(CultureInfo.InvariantCulture), "Test 66")
});
var messageArray = new BsonArray(bsonMessages);
var update = Update.Set("Accounts.$.Messages", messageArray);
collection.Update(query, update, UpdateFlags.Upsert);
如您所见,我按其 ID 过滤此人,但我不知道如何添加第二个过滤器以按其 ID 选择一个帐户
我很感激任何帮助;)