云数据库 聚合操作 LIMIT错误 且 无法比较时间
发布于 7 年前 作者 wwang 7504 次浏览 来自 官方Issues

问题1: 聚合操作时, 指定LIMIT为100时, 返回90条数据, 指定LIMIT为110时,返回100条数据, BUG实锤了

问题2: 聚合操作的GT, GTE, LT, LTE等比较操作无法直接比较时间, 只能将时间转化为字符类型后, 才能比较

  const result = await db.collection("DANDAN_NOTE")

       .aggregate()      

       .limit(MAX_LIMIT)     
       .project({       
         _id: 0,        
         money: 1,
         isDel: 1,
         openId: 1,
         flow: 1,
         noteDate: 1,
         isTarget: $.and([
           $.gte([$.dateToString({
             date: '$noteDate',
             format: '%Y-%m-%d',
             timezone: 'Asia/Shanghai'
           }), startDate]),
           $.lte([$.dateToString({
             date: '$noteDate',
             format: '%Y-%m-%d',
             timezone: 'Asia/Shanghai'
           }), endDate])
         ])
       })


2 回复

聚合后,如果不加limit,是代表返回全部数据还是限制为最多100条呀?

感谢反馈,limit 的问题没有复现,麻烦试试单独用 limit 然后看看是否符合预期呢。时间这里确实有问题,我们看看怎么处理

回到顶部