2014-03-04 26 views
0

我很难将工作MongoDB查询翻译成C#驱动程序的无类型等效。 查询:

{ 
    "Field" : { "$elemMatch" : { "$in" : ["Hamster"]}} 
} 

我有什么:

Query.ElemMatch("Field", Query.In("", new BsonArray(new[] { "Hamster" }))); 

产生:

{ 
    "Field" : { "$elemMatch" : { "" : { "$in" : ["Hamster"] }}} 
} 

这是相当接近,但我无法弄清楚如何从$删除名称在查询中。

回答

0

它似乎应该是可能的,但辅助方法的结构的方式我看不到一个简单的方法直接构建该查询。

我可以重新创建所需的查询的唯一方法是通过执行以下的变化:

var queryDocument = QueryDocument.Parse("{\"$in\" : [\"Hamster\"]}"); 
var nestedQueryDocument = Query.ElemMatch("Field", new QueryDocument(queryDocument)); 

创建以下输出

{ 
    "Field" : { "$elemMatch" : { "$in" : ["Hamster"]}} 
} 

虽然不是最优雅的解决方案。