我有以下课程:
public class Movie
{
string Name get; set;
string Director get; set;
IList<String> Tags get; set;
}
如何查询标签?我想用like %term%
查询为SQL。我尝试使用/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();
有什么想法吗?
答案 0 :(得分:2)
正确的查询是:
var tags = db.GetCollection().Find(
new { Tags = Q.Matches(string.Format(@".*{0}.*", term))},
new { Tags = OrderBy.Descending }, new { Tags = 1}, 8, 0).ToList();
答案 1 :(得分:0)
答案 2 :(得分:0)
更好的是,您可以在NORM LINQ提供程序中使用Regex(参考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();