• Mongo 开发笔记


    时间

    程序的时间是本地时间 ,数据库中的时间是 ISO 标准时间 。 ISO时间 + 8 小时 = 本地时间(北京时间 )

    Java驱动会自动做转化。

    语法

    数组查询

    • 数据查询使用 elemMatch

    删除指定位置的数组值.

    目前还没找到方法 . 类似的 js: splice (1 , 1)

    https://stackoverflow.com/questions/4588303/in-mongodb-how-do-you-remove-an-array-element-by-its-index

    分组

    qrCode有details集合。 按details 第一条的 tag 分组计数。

    db.qRCodeInfo.aggregate(
    [ 
      { $project: { "_id":0, "de" : { "$slice":[ "$details.tag", 0,1 ] } } } 
      ,{ $unwind : "$de"} 
      ,{ $group : { "_id": "$de" , count: { $sum: 1 } } }
    ]
    )
    

    firstElementAt

    如果表达式里有数组,那么会返回完整的数组。

    如果表达式中有数组,再取数组下面的属性,则会返回下面属性的数组。

    如果表达式里没有数组,则会返回属性值。

    db.qRCodeInfo.aggregate(
    [
    { $match: { "productId": "58ff0f5b2b3fe455a3e2944d" , } }
    , {
    $project : { 
    abc: { $slice: [ "$corpRecords.corp", 2 ] } ,
    createAt: { $arrayElemAt: [ "$corpRecords.userRecords.createAt" , 1] } 
    }} 
    ] 
    )
    

    aggregate 中使用 addFields

    解决 project 不足, 可以方便地添加字段. 减少字段 设置 filed: -1 即可.

    问题

    如何 aggregate 查询团长订单的子订单数

  • 相关阅读:
    安装pgsql
    ln软连接
    vsftp上传失败
    redis配置systemctl
    jmeter 录制排除模式
    数据库基本操作
    按日期排序
    angularjs的cache
    angularjs路由传递参数
    angularjs路由相关知识
  • 原文地址:https://www.cnblogs.com/newsea/p/7325879.html
Copyright © 2020-2023  润新知