C# 使用LINQ和MongoDb重新创建位置数组运算符
在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对
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#驱动程序了,但如果可以,我会尽力帮助:)很好的发现!我认为这对马丁来说是一个很好的答案,它目前是不支持的。想把这个评论推广到一个答案中,我会把它标记为被接受吗?很高兴,谢谢!……希望我有一个比“不支持”更好的答案。