我有:
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);
但这不起作用。
答案 0 :(得分:0)
我认为这应该可以解决问题:
var query = Query<Movie>.ElemMatch(m => m.Actors, builder => builder.EQ(actor => actor.Name, actorName));
var exc = this.MongoConnectionHandler.MongoCollection.Find(query);