Mongo c#driver,linq-to-mongo:查找具有特定字符串起始字段值的所有记录

时间:2016-10-14 19:29:20

标签: mongodb linq mongodb-query mongodb-.net-driver

说,我们有以下文档(为简单起见省略了其他字段):

array.sort {
    guard let leftValue = $0["key"], let rightValue = $1["key"] else {
        return false // NOTE: you will need to decide how to handle missing keys.
    }

    return leftValue.localizedStandardCompare(rightValue) == .orderedAscending
}

我只是想知道是否可以将以下linq翻译成mongodb查询:

{ _id: 1, name: 'a' }
{ _id: 2, name: 'ab' }
{ _id: 3, name: 'abc' }
{ _id: 4, name: 'acde' }
{ _id: 5, name: 'b' }

我希望得到以下输出:

_collection.AsQueryable().Where(m => "abcdef".StartsWith(m.name));

但是我收到一个错误:“不支持的过滤器:\”abcdef \“。StartsWith({document} {name})。”

mongo查询系统是否支持一些合适的替代方案?我应该如何重新编写查询?或者唯一的方法是从mongo中检索所有文档,然后在.net应用程序中过滤它们?

1 个答案:

答案 0 :(得分:0)

您可能会发现此答案很有用。它使用正则表达式进行字符串比较。

MongoDB c# driver: Case Insensitive Compare using in or contains on a list using linq