Mongodb 如何在Mongoose中的嵌入式模式中投影特定元素

Mongodb 如何在Mongoose中的嵌入式模式中投影特定元素,mongodb,mongoose,Mongodb,Mongoose,我有一个模式: trip : { source, destination, startTime, endTime } and this schema is part of another Schema tripSchema : { userId , driverId, trips : [trip] } 现在我特别想要mongoose中trip模式中的源和目的地。我怎样才能做到这一点呢?你可以通过给予 var projection = { 'trips.startTime' : fal

我有一个模式:

trip : {
source,
destination,
startTime,
endTime
}

and this schema is part of another Schema
tripSchema : {
userId ,
driverId,
trips : [trip]
}
现在我特别想要mongoose中trip模式中的源和目的地。我怎样才能做到这一点呢?

你可以通过给予

var projection = {
    'trips.startTime' : false,
    'trips.endTime' :false,  
    };
然后

CollectionName.find({query}, projection, function(err, result){
});

希望这对某人有所帮助

但是如果投影中的项目是一个包含一个字段的对象,那么如何将其作为一个平面变量来获取呢?我不理解你的问题。。你能解释一下吗?你的意思是说你想把嵌套对象的结果返回到平面对象中。我说得对吗?您需要一个平面对象,如
amount
,它等于price.amount,但不使用点运算符,您应该能够访问它?如果是这种情况,则如果对象中有对象。我建议将所有内容复制到一个平面对象中,因为我不知道Mongo会如何修改您的文档并返回。或者,如果要展平一组对象。我想请你看看MongoDB。但即使这样也不能让事情变得简单。你为什么要这么做?你拿到文件后,为什么不能把它展平呢。您要尝试的操作($set)在更新中,而不是在查找中。