Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongoose 如何隐藏通过填充查询提取的特定字段_Mongoose_Mongoose Schema_Mongoose Populate - Fatal编程技术网

Mongoose 如何隐藏通过填充查询提取的特定字段

Mongoose 如何隐藏通过填充查询提取的特定字段,mongoose,mongoose-schema,mongoose-populate,Mongoose,Mongoose Schema,Mongoose Populate,我的架构如下: order.js var mongoose = require('mongoose'); var Schema = mongoose.Schema; var foodtruck = require('./foodtruck.js'); var payment = require('./payment.js'); var Items = require('./items.js'); var order = new Schema({ order_status:Number

我的架构如下:

order.js

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


var order = new Schema({
    order_status:Number,   //0 place 1 accepted 2 cooked 3 cancelled
    foodtruck_id:{type:Schema.Types.ObjectId,ref: 'foodtruck'},
    customer_id:{type: Schema.Types.ObjectId,ref: 'user'},
    items:[{type : Schema.Types.ObjectId, ref : 'items'}],
    user_type:Boolean,
    order_time:Date,
    order_rating:{type:Number,default:5.0},
    order_issue_comments:String,
    order_special_instruction:String,
    order_total:Number,
    order_location:String,
    order_coupon_code:String,
    payment_id:{type:Schema.Types.ObjectId,ref:'payment'}
},{ versionKey: false });


module.exports = mongoose.model('order',order);
foodtruck.js

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


var FoodTruckSchema = new Schema({
    foodtruck_name:String,
    foodtruck_location:String,
    foodtruck_rating:{type:Number,default:5},
    foodtruck_total_votes:{type:Number,default:0},
    foodtruck_tag:String,
    foodtruck_open_status:{type:Number,default:1},   //0 open 1 closed
    foodtruck_starting_timing:String,
    foodtruck_closing_timing:String,
    foodtruck_cusine:String,
    foodtruck_img:String,
    foodtruck_logo:String,
    item_list: [ {type : mongoose.Schema.ObjectId, ref : 'items'}]
},{ versionKey: false });



module.exports = mongoose.model('foodtruck',FoodTruckSchema);
items.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var ItemSchema = new Schema({
    no_of_times_ordered:Number,
    item_name:String,
    item_tag:String,
    item_category:String,
    item_illustrations:[String],
    item_stock:Number,   //0 available 1 last 5 items 2 not available
    item_quantity_ordered:{type:Number,default:0},
    item_discount_price:Number,
    item_price:Number,
    item_img:String,
    no_of_likes:{type:Number,default:0}
},{ versionKey: false });

module.exports = mongoose.model('items',ItemSchema);
现在我的查询如下图所示:

var getOrderList = function(req, res) {
    var foodtruck_id = req.body.foodtruck_id;
    if ((foodtruck_id) && (foodtruck_id.trim() != '')) {
        order.find({
            'foodtruck_id': foodtruck_id.trim()
        }).populate('foodtruck_id').populate('customer_id').populate('items').exec(function(err, orderList) {
            if (err) res.json({
                status: '500',
                message: 'There was no order found'
            });
            else {
                res.json({
                    status: '200',
                    message: 'Order list',
                    data: orderList
                });
            }
        });
    } else {
        res.json({
            status: '404',
            message: 'Please enter valid id'
        });
    }
};
答复如下:

现在,当我对“foodtruck_id”进行填充查询时,它还显示了附加的项列表。在填充foodtruck\u id查询时,是否有任何方法可以隐藏项目列表字段?

1。 您可以使用'-'在填充后排除键

.populate({path:foodtruck_id,select:'-item_list')
  • 如果要选择任何特定的关键示例,您只需要foodtruck\u name。 你可以这样做

    .populate({path:foodtruck\u id,选择:'foodtruck\u name')


  • 要了解有关填充的更多信息,请访问

    Hey@Shumi,我们如何从对象数组中排除字段?