дополнительное поле id в документе mongodb - PullRequest
0 голосов
/ 10 мая 2018

Я работаю над приложением.Проблема в том, что когда я использую почтальон для просмотра документа обрезки, хранящегося в mongodb, также появляется дополнительное поле id, которое совпадает с полем _id в mongodb.Это id , мне известно обычное поле _id , которое предоставляет mongodb.

У меня есть схема кадрирования следующим образом

const mongoose = require('mongoose');
const Pesticide = require('./Pesticide');
mongoose.Promise = global.Promise;
const Schema = mongoose.Schema;
const cropSchema = new mongoose.Schema({
nameOfCrop:{
  type:String,
  lowercase:true,
  required:'Please enter the name of the crop',
  trim:true
},
imageOfCrop:String,
soilType: String,
waterNeeded:String,
tagCrop:String,//forage, vegetable, oilseeds etc.
pesticideForCrop:[{
    type:mongoose.Schema.Types.ObjectId,
    ref:'Pesticide'
  }
]},
 {
toJSON: { virtuals: true },
toObject: { virtuals: true },
});

Фактический документ, который возвращается почтальоном:

{
"pesticideForCrop": [],
    "_id": "5af1d1d54558fae1d0010bb4",
    "nameOfCrop": "Tomato",
    "imageOfCrop": "tomatoimage",
    "soilType": " almost all soil types except heavy clay",
    "waterNeeded": "water once every two or three days",
    "tagCrop": "Vegetables",
    "id": "5af1d1d54558fae1d0010bb4"
}

Мой метод выглядит следующим образом:

exports.getCrops = function(req,res){
 Crop.find({}).populate('pesticideForCrop').exec(function (err, crops) {
 if (err) return err;
 res.send(crops);
 console.log(crops);
 });
 };

1 Ответ

0 голосов
/ 10 мая 2018

вы можете использовать select в populate для полей, которые вы когда-либо захотите

Crop.find({}).populate({
    path: 'pesticideForCrop',
    select: {
        "_id": 1,
        "nameOfCrop": 1, 
        "imageOfCrop":1, 
        "soilType": 1, 
        "waterNeeded": 1,
        "tagCrop": 1
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...