Javascript 我可以只获取父对象嵌套集合的对象吗?

Javascript 我可以只获取父对象嵌套集合的对象吗?,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,您好,我想知道,作为findOnequery的结果,是否可以只获取嵌套集合的一个对象,而不是包含该对象的嵌套集合的整个对象 假设我有这个模型,战士模型: const classNameList=[“盗贼”、“牧师”、“战士”]; const EquipmentSchema=新架构({ 武器:绳子, 盔甲:弦, 总重量:个 }); const WarriorSchema=新模式({ 姓名:{ 类型:字符串, 必填项:true }, 类别:{ 类型:字符串, 验证:{ 验证器:(值)=>classN

您好,我想知道,作为
findOne
query的结果,是否可以只获取嵌套集合的一个对象,而不是包含该对象的嵌套集合的整个对象

假设我有这个模型,战士模型

const classNameList=[“盗贼”、“牧师”、“战士”];
const EquipmentSchema=新架构({
武器:绳子,
盔甲:弦,
总重量:个
});
const WarriorSchema=新模式({
姓名:{
类型:字符串,
必填项:true
},
类别:{
类型:字符串,
验证:{
验证器:(值)=>classNameList.includes(值),
消息:“此类不存在!”
}
},
年龄:{
类型:数字,
民:18,,
最高:1000,
必填项:true
},
重量:{
类型:数字,
民:18,,
最高:150
},
设备:[设备架构]
});
然后,为了找到总重量等于12的唯一一台设备,我创建了此查询:

const result=await Warrior.findOne({'devices.totalWeight':12});
作为对这个查询的响应,我得到了整个
Warrior
对象和设备列表,但我只想得到这个
Equipment
,它
totalWeight
等于12。是否有可能通过查询仅获取此
设备
对象


我知道我可以用
.find()
方法找到这个对象,并将它分配给变量,但它不是我要找的东西。

你认为
战士。findOne
会返回什么?你要求一个战士,你得到一个战士回来。您按某些子属性进行了筛选,但仍在查询战士。@gforce301是的,这是真的,我希望如此,但我无法查询设备,因为它不是存储库。所以问题是,有没有办法进行查询,只返回这个数据库模型的设备对象?我只能通过更改数据库模型来实现这一点吗?