如何使用C#驱动程序在无类MongoDB上找到匹配的'StartsWith'文档

时间:2018-01-12 10:41:11

标签: c# mongodb mongodb-query

我有文件:

{"handler":"north"}
{"handler":"south"}
{"handler":"west"}
{"handler":"east"}

我想从给定的字符串输入中找到匹配的处理程序,例如"westtown"并期望处理程序为"west"

请帮忙,我的代码不起作用。

String inputstring = "westtown";
IMongoCollection<BsonDocument> collection = null;
List<BsonDocument> pages = null;

try
{
     collection = db.GetCollection<BsonDocument>("handlers");
     pages = await collection.Find(x => (inputstring.StartsWith(x["handler"].AsString))).ToListAsync<BsonDocument>();
}
...

我使用无类方案,所以我在动态上使用BsonDocument

1 个答案:

答案 0 :(得分:0)

AFAIK,在MongoDB中,您可以使用$where运算符找到它:

{  $where: "'westtown'.startsWith(this.handler)" }

所以,我认为在c#中你可以用这样的东西来做:

var filter =
    new BsonDocument(
        new Dictionary<string, BsonValue>
            {
                {
                    "$where",
                    new BsonString("'westtown'.startsWith(this.handler)")
                }
            });
var result = col.Find(filter).ToList();