C# 在C中使用Mongodb$过滤器#
我正在尝试使用mongodb和C#为RESTAPI构建一个搜索函数 我试图在查询中使用mongodb中的$in过滤器。我知道,硬编码筛选器字符串C# 在C中使用Mongodb$过滤器#,c#,mongodb,C#,Mongodb,我正在尝试使用mongodb和C#为RESTAPI构建一个搜索函数 我试图在查询中使用mongodb中的$in过滤器。我知道,硬编码筛选器字符串{“name\:{$in:[/^First/]}}可以按照我的意愿查找记录,但是使用筛选器时无法获得相同的功能 在我的mongo repo中,我有一个GetAsync,它接受名称,并执行以下操作: return await Context .Collection<TChronosDocument>()
{“name\:{$in:[/^First/]}}
可以按照我的意愿查找记录,但是使用筛选器时无法获得相同的功能
在我的mongo repo中,我有一个GetAsync,它接受名称
,并执行以下操作:
return await Context
.Collection<TChronosDocument>()
.Find(
//"{\"name\":{$in:[/^First/]}}")
Builders<TChronosDocument>.Filter.In(x => name, ToRegex(name)))
.Sort(SortDefinition)
.Page(offset, limit)
.ToListAsync()
.ToAggregate(Mapper);
返回等待上下文
.Collection()
.找到(
//“{”name\:{$in:[/^First/]}}”)
Builders.Filter.In(x=>name,ToRegex(name)))
.Sort(排序定义)
.页(偏移量、限制)
.ToListAsync()
.ToAggregate(制图员);
ToRegex
函数仅将类似First
的字符串转换为类似[/^First/]
的字符串[],以供过滤器使用
这里的问题是,这会为结果返回一个空数组,而不是正确匹配带有名称:“First Agency”
的条目
我不确定这是否是在C#中实现$in功能的正确方法,或者我只是在做其他错误的事情
(注:我曾尝试使用Find(Builders.Filter.In(name,ToRegex(name))
,但也没有成功)。尝试替换
Builders<TChronosDocument>.Filter.In(x => name, ToRegex(name)))
Builders.Filter.In(x=>name,ToRegex(name)))
与
Builders.Filter.ElemMatch(x=>name,ToRegex(name))
Builders<TChronosDocument>.Filter.ElemMatch(x => name, ToRegex(name))