zoukankan      html  css  js  c++  java
  • 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;
            }
  • 相关阅读:
    __type_traits(traits思想)--萃取型别
    traits编程技巧
    SGI空间分配器之第二级配置器剖析
    SGI空间分配器之第一级配置器剖析
    枚举类型与联合类型
    函数指针
    c++中的placement new操作符学习
    第十六章:模板与泛型编程
    第十五章:面向对象编程
    第十五章:面向对象编程
  • 原文地址:https://www.cnblogs.com/IclearByte/p/7261461.html
Copyright © 2011-2022 走看看