这是我的架构
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_petShop
和C_petShop
应该是查询结果
mongoDB命令或mongoose JavaScript应该是什么样的?
答案 0 :(得分:0)
因为dogs
数组首先按最旧的排序,所以可以按数字数组索引查询:
PetShop.find({'pets.dogs.0.color': 'white'}, function(err, petShops) {...});