MongoDB基于对象成员筛选对象数组内容

MongoDB基于对象成员筛选对象数组内容,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有下面的objects数组,我想知道是否有一种方法可以将结果过滤为只返回QtyIn记录还是只返回QtyOut记录?任何暗示都将受到高度赞赏。谢谢你的帮助 { warehouseID: "1234", transactions : [ { "qtyIn" : "10", "transDateTime" : ISODate("2019-09-10T18:54:41.983Z") },

我有下面的objects数组,我想知道是否有一种方法可以将结果过滤为只返回QtyIn记录还是只返回QtyOut记录?任何暗示都将受到高度赞赏。谢谢你的帮助

{
    warehouseID: "1234",
    transactions : [ 
        {
            "qtyIn" : "10",
            "transDateTime" : ISODate("2019-09-10T18:54:41.983Z")
        }, 
        {
            "qtyOut" : "11",
            "transDateTime" : ISODate("2019-08-10T18:54:41.983Z")
        },
        {
            "qtyOut" : "200",
            "transDateTime" : ISODate("2019-02-10T11:54:41.983Z")
        }    
    ],
}

您可以在以下范围内将
qTyIn
undefined
进行比较:


交易中
?还是作为根文档?
db.collection.aggregate([
    {
        $addFields: {
            transactions: {
                $filter: {
                    input: "$transactions",
                    cond: {
                        $ne: [ "$$this.qtyIn", null ]
                    }
                }
            }
        }
    }
])