MongoDB:如何在第三个子数组中找到一个结果?

时间:2018-04-13 14:43:30

标签: mongodb

这是我的文件。

{ 
    "_id" : "exportadores", 
    "instancia" : ISODate("2018-03-23T11:36:32.296+0000"), 
    "dwFatPDFs" : {
            "regis" : [
                {
                    "cod" : "A1", 
                    "idFat" : NumberLong(15772), 
                    "data" : ISODate("2018-04-13T12:33:44.149+0000"), 
                    "ipPm" : "192.168.0.1"
                }, 
                {
                    "cod" : "A2", 
                    "idFat" : NumberLong(15772), 
                    "data" : ISODate("2018-04-13T13:54:26.477+0000"), 
                    "ipPm" : "192.168.0.1"
                }
            ]
    }
}

我想通过'cod'从数组(regis)得到一个结果。

例如。如果搜索“cod”像“A1” 我想得到这样的东西:

{ 
    "_id" : "exportadores",
    "dwFatPDFs" : {
            "regis" : [
                {
                    "cod" : "A1", 
                    "idFat" : NumberLong(15772), 
                    "data" : ISODate("2018-04-13T12:33:44.149+0000"), 
                    "ipPm" : "192.168.0.1"
                }             
            ]
    }
}

对不起我的英语。

有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:0)

使用带点标记+ $标识符返回符合条件的第一个子文档:

Collection.find({
    "dwFatPDFs.regs.cod": your_id
}, {
    "dwFatPdfs.regs.$.cod": 1
});

我认为这个查询可以完成这项工作