Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb:按索引或其他字段进行数组筛选_Mongodb - Fatal编程技术网

mongodb:按索引或其他字段进行数组筛选

mongodb:按索引或其他字段进行数组筛选,mongodb,Mongodb,过滤阵列时,是否可能: 按项索引筛选(例如,获取除第一个之外的所有数组元素) 是否在包含数组字段的同一文档中的另一个字段中按值筛选 考虑文件: { _id: 1, first_seen_on: 20160312, seen_on: [20160312, 20160313, 20160324] } 我需要在数组上看到的变成[2016031320160324] 这似乎不起作用(我认为$first\u seen\u on被视为文字值): 使用如下 db.collection.agg

过滤阵列时,是否可能:

  • 按项索引筛选(例如,获取除第一个之外的所有数组元素)

  • 是否在包含数组字段的同一文档中的另一个字段中按值筛选

  • 考虑文件:

    {
       _id: 1,
       first_seen_on: 20160312,
       seen_on: [20160312, 20160313, 20160324]
    }
    
    我需要在数组上看到的
    变成[2016031320160324]

    这似乎不起作用(我认为
    $first\u seen\u on
    被视为文字值):

    使用如下

    db.collection.aggregate([
        {
            "$project": {
                "repeats": {
                    "$setDifference": ["$seen_on", ["$first_seen_on"]]
                }
            }
        }
    ])
    
    样本输出

    /* 1 */
    {
        "_id" : 1,
        "repeats" : [ 
            20160313, 
            20160324
        ]
    }
    

    当您说过滤时,您指的是聚合管道中的过滤阶段??过滤聚合管道项目阶段中的数组,如我包含的示例代码中所示。
    /* 1 */
    {
        "_id" : 1,
        "repeats" : [ 
            20160313, 
            20160324
        ]
    }