美元($)前缀字段对于存储无效

时间:2018-09-04 23:18:01

标签: c# mongodb azure-cosmosdb

我有两节课:

public class Client
{
    [BsonId]
    public string Id { get; set; }
    public ICollection<OtherData> Other { get; set; }

}

public class OtherData
{
    [BsonId]
    public string Id { get; set; }
    public string Text { get; set; }
}

我有一份客户文件。

我想根据其ID更新Other上的项目。 所以我有这段代码。

Expression<Func<Client, bool>> filter = x =>
            x.Id == id
            && x.Other.Any(t => t.Id == idOther);

var update = new UpdateDefinitionBuilder<Client>()
            .Set(x => x.Other.ElementAt(-1), dadoBancario);

await _collection.FindOneAndUpdateAsync(filter, update);

但是当我运行这段代码时,出现了这个错误:

  

命令findAndModify失败:'Other。$'中以美元($)为前缀的字段'Other。$'无效。..MongoDB.Driver.MongoCommandException              在MongoDB.Driver.Core.WireProtocol.CommandWireProtocol 1.ProcessReply(ConnectionId connectionId, ReplyMessage 1处回复)

我正在使用Cosmos DB。 这是一些兼容性问题吗?

还是我可以走另一条路?

0 个答案:

没有答案