MongoDb C#驱动程序不更新我的内部列表

MongoDb C#驱动程序不更新我的内部列表,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有一种方法可以将新数据推送到NozzleStateList中: public async Task AddNozzleState(NozzleState nozzleState, Guid tankId, Guid gasStationId) { UpdateDefinition<GasStation> update = Builders<GasStation>.Update.Push("TankList.$[t].Noz

我有一种方法可以将新数据推送到NozzleStateList中:

    public async Task AddNozzleState(NozzleState nozzleState, Guid tankId, Guid gasStationId)
        {
            UpdateDefinition<GasStation> update = Builders<GasStation>.Update.Push("TankList.$[t].NozzleList.$[n].NozzleStateList", nozzleState);


            await _context.GetCollection<GasStation>().UpdateOneAsync(x => x.Id == gasStationId, update, new UpdateOptions
            {
                ArrayFilters = new List<ArrayFilterDefinition>{
                    new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("t._id", tankId)),
            new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("n._id", nozzleState.NozzleId))
                }
            });
        }
public异步任务AddNozzleState(NozzleState-NozzleState,Guid-tankId,Guid-gasStationId)
{
UpdateDefinition update=Builders.update.Push(“坦克列表.$[t].NozzleList.$[n].NozzleStateList”,nozzleState);
wait_context.GetCollection().UpdateOneAsync(x=>x.Id==gasStationId,update,newupdateoptions
{
ArrayFilters=新列表
AddNozzleState方法运行时没有错误,但不保存任何内容。

问题出在哪里?

最后,我改变了方法,使用了JsonArrayFilterDefinition,这段代码可以工作:

public async Task AddNozzleState(NozzleState nozzleState, Guid tankId, Guid gasStationId)
        {
            UpdateDefinition<GasStation> update = Builders<GasStation>.Update.Push("TankList.$[t].NozzleList.$[n].NozzleStateList", nozzleState);


            await _context.GetCollection<GasStation>().UpdateOneAsync(x => x.Id == gasStationId, update, new UpdateOptions
            {
                ArrayFilters = new List<ArrayFilterDefinition>{
                    new JsonArrayFilterDefinition<Tank>("{'t._id': { $eq : UUID(\""+ tankId +"\")} }"),
                    new JsonArrayFilterDefinition<Nozzle>("{'n._id': { $eq : UUID(\""+ nozzleState.NozzleId+"\")}}")
                }
            });
        }
public异步任务AddNozzleState(NozzleState-NozzleState,Guid-tankId,Guid-gasStationId)
{
UpdateDefinition update=Builders.update.Push(“坦克列表.$[t].NozzleList.$[n].NozzleStateList”,nozzleState);
wait_context.GetCollection().UpdateOneAsync(x=>x.Id==gasStationId,update,newupdateoptions
{
ArrayFilters=新列表{
新的JsonArrayFilterDefinition(“{t.\U id':{$eq:UUID(\”“+tankId+“\”)}”),
新的JsonArrayFilterDefinition(“{n.'u id':{$eq:UUID(\”“+nozzleState.NozzleId+“\”)}”)
}
});
}