C# ElemMatch的ArgumentNullException
给出了以下实体:C# ElemMatch的ArgumentNullException,c#,.net,mongodb,mongodb-.net-driver,mongodb-query,C#,.net,Mongodb,Mongodb .net Driver,Mongodb Query,给出了以下实体: public class MyClass { public MyClass() { Aliases= new List<string>(); } public Guid Id { get; set; } public string Name { get; set; } public List<string> Aliases{ get; set; } } 如何解决此限制/错误?ElemM
public class MyClass
{
public MyClass()
{
Aliases= new List<string>();
}
public Guid Id { get; set; }
public string Name { get; set; }
public List<string> Aliases{ get; set; }
}
如何解决此限制/错误?
ElemMatch
不像where子句那样过滤结果,它只将返回的数组限制为一个匹配项,或者不包含任何匹配项。您需要首先过滤文档,然后限制其中的数组
您应该像这样使用Eq
:
Query.Or(
Query<MyClass>.EQ(a => a.Name, request.Name),
Query<MyClass>.EQ(a => a.Aliases, request.Name));
{
"$or" : [
{
"Name" : "bar"
},
{
"Aliases" : "bar"
}]
}
MongoDB知道别名是一个数组,它将“搜索”名称,而不是“仅比较”
Query.Or(
Query<MyClass>.EQ(a => a.Name, request.Name),
Query<MyClass>.EQ(a => a.Aliases, request.Name));
{
"$or" : [
{
"Name" : "bar"
},
{
"Aliases" : "bar"
}]
}