如何通过检查数组的第一个元素在mongoDB或mongoose中找到文档?

时间:2014-11-07 16:25:23

标签: node.js mongodb mongoose

这是我的架构

petShop: {
    name: String,
    pets: {
        dogs: [{
            color: String
            name: String
            DOB: Date
        }],
        cats: [{
            color: String
            name: String
            DOB: Date
        }],
        ...
    },
    ...
}

让我们说, 我想找到有petShops狗的所有white,它必须是最长的狗

e.g。

A_petShop只有一只black只狗和一只white只狗 white狗比black狗更老

B_petShop只有一只black只狗和一只white只狗 black狗比white狗更老

C_petShop只有一只black只狗和两只white只狗 其中一只white狗比其他两只狗年长

因此,A_petShopC_petShop应该是查询结果

mongoDB命令或mongoose JavaScript应该是什么样的?

1 个答案:

答案 0 :(得分:0)

因为dogs数组首先按最旧的排序,所以可以按数字数组索引查询:

PetShop.find({'pets.dogs.0.color': 'white'}, function(err, petShops) {...});