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;
            }
  • 相关阅读:
    Explain用法
    轻量快速的 Python ASGI 框架 uvicorn
    conda常用命令
    ubuntu 安装并配置zsh
    ubuntu安装zsh终端
    /etc/profile、/etc/bashrc、.bash_profile、.bashrc
    python用List的内建函数list.sort进行排序
    python对象排序
    修改python接口返回给前端的格式封装
    linux设置uwsgi开机自启
  • 原文地址:https://www.cnblogs.com/IclearByte/p/7261461.html
Copyright © 2011-2022 走看看