复合查询在MongoDb c#驱动程序中查找文档

本文关键字:查找 文档 驱动程序 查询 MongoDb 复合 | 更新日期: 2023-09-27 18:09:39

我是MongoDB的新手。我尝试使用MongoDB c#驱动find()方法,面临以下问题:

public IEnumerable<Ticket> GetTicketByUserId(string userId)
{
    var query = Query<Ticket>.EQ(ticket => ticket.User, userId);
    var tickets = DbCollection.Find(query);
    return tickets;
}

这里我只想匹配userid…在mongodb中可以这样写

db.Ticket.find({User: "-----"})像这样…

但是我想检查像这样的多个字段

db.Ticket.find({User: "-----", Status:"High"})

,但我没有在c#中转换它。如何检查多个字段,如使用Mongo c#驱动程序查询。我搜索了,但没有找到这样的东西。
我已经使用linq完成了它,但我想知道如何使用Find()

复合查询在MongoDb c#驱动程序中查找文档

您可以使用LINQ到MongoDB:

var tickets = from t in DbCollection.AsQueryable<Ticket>()
              where t.User == userId && t.Status == "High"
              select t;

如果你想使用MongoQuery语法,那么只需将所有子查询传递给 query:

var query = Query.And(Query<Ticket>.EQ(t => t.User, userId),
                      Query<Ticket>.EQ(t => t.Status, "High"));
var tickets = DbCollection.Find(query);