1

私は次のクラスを持っています:

public class Movie
{
    string Name get; set;
    string Director get;  set;
    IList<String> Tags get; set;
}

タグをクエリするにはどうすればよいですか?を使用してSQLとしてクエリを実行したいlike %term%。で試しまし/term/iたが、動作しません。

term = string.Format(@"/{0}/i", term);
var tags = db.GetCollection().Find( 
    new { Tags = term  }, 
    new { Tags = OrderBy.Descending },
    new { Tags = 1}, 8, 0).ToList();

何か案は?

4

3 に答える 3

2

正しいクエリは次のとおりです。

 var tags = db.GetCollection().Find( 
 new { Tags = Q.Matches(string.Format(@".*{0}.*", term))},
 new { Tags = OrderBy.Descending }, new { Tags = 1}, 8, 0).ToList();
于 2011-05-27T13:23:54.980 に答える
0

次の質問を見てください。

公式の C# ドライバーを使用して mongoDB で SQL Like 演算子を実行するにはどうすればよいですか?

于 2011-05-26T17:52:20.743 に答える
0

さらに良いことに、NORM LINQ プロバイダーで正規表現を使用できます ( http://schotime.net/blog/index.php/2010/04/29/nosql-norm-mongodb-and-regular-expressionsを参照)。

_provider.GetCollection<T>().AsQueryable()
  .Where(t =>
    Regex.IsMatch(t.Tags, String.Format(".*{0}.*", term), RegexOptions.IgnoreCase))
 .OrderByDescending();
于 2011-08-29T18:13:05.203 に答える