如何在mongoose中从文档查询中仅获取子文档

如何在mongoose中从文档查询中仅获取子文档,mongoose,mongoose-schema,Mongoose,Mongoose Schema,我试图通过node.js中的mongoose从整个文档中只获取子文档。 我的数据库架构如下所示: var mongoose = require('mongoose'); var Schema = mongoose.Schema; // var Items = require('./items.js'); var Items = new Schema({ no_of_times_ordered:Number, item_name:String, item_tag:Stri

我试图通过node.js中的mongoose从整个文档中只获取子文档。 我的数据库架构如下所示:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// var Items = require('./items.js');

var Items = new Schema({
    no_of_times_ordered:Number,
    item_name:String,
    item_tag:String,
    item_category:String,
    item_stock:Number,
    item_price:Number,
    item_img:String,
    item_illustrations:[String],
    item_liked:Boolean,
    no_of_likes:Number
},{ versionKey: false });


var FoodTruckSchema = new Schema({
    foodtruck_name:String,
    foodtruck_location:String,
    foodtruck_rating:Number,
    foodtruck_tag:String,
    foodtruck_timing:String,
    foodtruck_cusine:String,
    foodtruck_img:String,
    foodtruck_logo:String,
    item_list: [Items]
},{ versionKey: false });



module.exports = mongoose.model('foodtruck',FoodTruckSchema);
查询如下:

var popularitems = function(req,res) {
    foodtr.find(function(err,items){
        if (err) res.send(err);
        res.json({
            status : '200',
            message:'popular items list',
            data: items
        });
    });

所以我已经把查询放在了检索带有foodtruck的项的位置,但我怎么能只得到响应中的项呢

您可以在查找查询中使用
选择
投影
,仅获取

试试这个:

foodtr.find({},{'item_list':1},function(err,items){ 
    if (err) res.send(err); 
    res.json({ 
        status : '200',
        message:'popular items list', 
        data: items 
    }); 
});
{}
类似于查询条件,在这种情况下,它将检索所有文档。
{'item_list':1}
是告诉mongo只检索
item_list
数组(默认情况下,id与其他任何内容一起出现)


希望这就是您想要的。

显示您迄今为止尝试过的查询?我已将我尝试过的查询放入更新问题中