我很难将工作MongoDB
查询转换为C#驱动程序的无类型等效项。
查询:
{
"Field" : { "$elemMatch" : { "$in" : ["Hamster"]}}
}
我有什么:
Query.ElemMatch("Field", Query.In("", new BsonArray(new[] { "Hamster" })));
生成:
{
"Field" : { "$elemMatch" : { "" : { "$in" : ["Hamster"] }}}
}
这非常接近,但我无法弄清楚如何从$ in查询中删除该名称。
答案 0 :(得分:2)
Query.ElemMatch("Field", new QueryDocument("$in", new BsonArray(new[] { "Hamster" })));
答案 1 :(得分:0)
似乎它应该是可能的,但是辅助方法的结构方式我看不到直接构造该查询的简单方法。
我可以重新创建所需查询的唯一方法是执行以下操作:
var queryDocument = QueryDocument.Parse("{\"$in\" : [\"Hamster\"]}");
var nestedQueryDocument = Query.ElemMatch("Field", new QueryDocument(queryDocument));
创建以下输出
{
"Field" : { "$elemMatch" : { "$in" : ["Hamster"]}}
}
虽然不是最优雅的解决方案。