C# 使用LINQ和MongoDb重新创建位置数组运算符

C# 使用LINQ和MongoDb重新创建位置数组运算符,c#,linq,mongodb,mongodb-.net-driver,C#,Linq,Mongodb,Mongodb .net Driver,在MongoDB中,我有一个有效的更新查询: db.posts.update( { "_id" : ObjectId("..."), "Comments.Reference" : 123 }, { $push : { "Comments.$.Notes": { Text: "Some description here" } } }); 这将找到具有匹配Id的Post文档,对于该数组中具有匹配引用的Comments对

在MongoDB中,我有一个有效的更新查询:

db.posts.update(
  { 
    "_id" : ObjectId("..."),
    "Comments.Reference" : 123 
  },
  { 
    $push : 
    { 
      "Comments.$.Notes": { Text: "Some description here" } 
    }
  });
这将找到具有匹配Id的Post文档,对于该数组中具有匹配引用的Comments对象,它将把一个新对象推送到其中的Notes数组中

然而,由于我正在使用C#和驱动程序,我想看看是否有可能用LINQ创建这个

我要做的是创建一个更新查询,它转换为创建$positional操作符

IMongoUpdate=update.Push(t=>t.Comments.First().Notes,
Parse(“{Text:\'Test\'}”);
我把First()作为第一个猜测,并让它编译,但是它抛出一个错误,说它不能序列化它

是否可以重新创建这个,或者我只需要恢复到使用“Comments.$.Notes”字符串查询

编辑:只是为了更新,这是可行的,但不提供类型安全性:

IMongoUpdate=update.Push(“评论.$.Notes”,
Parse(“{Text:\'Test\'}”);

不幸的是,目前似乎不支持:(


不幸的是,目前似乎不支持:(


此功能已添加:

要直接从jira案例中复制:

Builders<Entity>.Update.Set(x => x.MyArray[-1].Value, 10);

已添加此功能:

要直接从jira案例中复制:

Builders<Entity>.Update.Set(x => x.MyArray[-1].Value, 10);

你能为你的博士后课程分享C#吗?我已经有一段时间没有使用Mongo C#驱动程序了,但如果可以,我会尽力帮助:)很好的发现!我认为这对马丁来说是一个很好的答案,它目前是不支持的。想把这个评论推广到一个答案中,我会把它标记为被接受吗?很高兴,谢谢!……希望我有一个比“不支持”更好的答案。你能为你的博士后课程分享C#吗?我已经有一段时间没有使用Mongo C#驱动程序了,但如果可以,我会尽力帮助:)很好的发现!我认为这对马丁来说是一个很好的答案,它目前是不支持的。想把这个评论推广到一个答案中,我会把它标记为被接受吗?很高兴,谢谢!……希望我有一个比“不支持”更好的答案。