c# mongodb使用Query.ElemMatch匹配元素中的数组

如图,匹配stockinfo中的code和name:

代码如下:

public static List<PA_AdjustStockHistory> GetAdjustStockHistoryByUserId(long userid, int productId, string stockCode, string stockName, DateTime dtStart, DateTime dtEnd, int pageIndex, int pageSize)
        {
            List<PA_AdjustStockHistory> palist = new List<PA_AdjustStockHistory>();
            try
            {
                List<IMongoQuery> build = new List<IMongoQuery>();
                if (userid > 0)
                {
                    build.Add(Query.And(Query.EQ("TeacherID", userid)));
                }
                if (productId > 0)
                {
                    build.Add(Query.And(Query.EQ("TeacherID", userid)));
                }
                BsonDocument b = new BsonDocument();
                DateTime dt = DateTime.Now;
                //加上八小时解决时区问题
                if (dtStart != DateTime.MinValue || dtEnd != DateTime.MinValue)
                {
                    if (dtStart != DateTime.MinValue)
                    {
                        b.Add("$gt", dtStart.AddHours(8));
                    }
                    if (dtEnd != DateTime.MinValue)
                    {
                        b.Add("$lt", dtEnd.AddHours(8));
                    }
                    build.Add(Query.And(Query.EQ("AddTime", b)));
                }
                if (!string.IsNullOrEmpty(stockCode))
                {
                    build.Add(Query.ElemMatch("stockInfo", Query.EQ("StockCode", stockCode)));
                }
                if (!string.IsNullOrEmpty(stockName))
                {
                    build.Add(Query.ElemMatch("stockInfo", Query.EQ("StockName", stockName)));
                }
                var q = Query.And(build.ToArray());
                IMongoSortBy sort = new SortByDocument("_id", -1);
                palist = MongoComm.MongoDataAccess.FindList<PA_AdjustStockHistory>("PA_AdjustStockHistory", q, sort, null, pageIndex, pageSize);
            }
            catch (Exception e)
            {

            }
            return palist;
        }

 

posted @ 2017-07-31 09:30  今天是周一  阅读(901)  评论(0编辑  收藏  举报