我有文件:
{"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
。
答案 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();