Mongo DB通过subcollection属性进行查询收集

时间:2015-05-14 17:39:44

标签: c# .net mongodb database

我有:

public class Movie : IMongoEntity
{
    public ObjectId Id { get; set; }
    public string Title { get; set; }
    public string Year { get; set; }
    public List<Actor> Actors { get; set; }
}

 public class Actor : IMongoEntity
{
    public ObjectId Id { get; set; }
    public string Name { get; set; }
}

如果我想要检索整个电影收藏品

var query = this.MongoConnectionHandler.MongoCollection.FindAllAs<Movie>();

不,我只想检索具有特定名称的演员的电影

我尝试过类似的事情:

IMongoQuery query = Query<Movie>.Where(m => m.Actors.Select(a => a.Name).Any(n => n.Contains(actorName)));

        var exc = this.MongoConnectionHandler.MongoCollection.Find(query);

但这不起作用。

1 个答案:

答案 0 :(得分:0)

我认为这应该可以解决问题:

var query = Query<Movie>.ElemMatch(m => m.Actors, builder => builder.EQ(actor => actor.Name, actorName));
var exc = this.MongoConnectionHandler.MongoCollection.Find(query);