如何从mongoose

时间:2017-03-02 12:47:52

标签: 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: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
        });
    });

所以我已经查询了检索foodtrucks的项目,但是我怎么才能回复项目?

1 个答案:

答案 0 :(得分:0)

您可以在查找查询中使用selectprojection来仅获取items

试试这个:

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默认情况下与其他任何内容一起出现)。

希望这就是你想要的。