var headSchema = new Schema({
  typename: String,
  headname: String,
  status: { type: Number, default: 1 }
});
var Head = mongoose.model("heads", headSchema);

var mgmtSchema = new Schema({
  headtype: String,
  type: { type: Schema.Types.ObjectId, ref: "Head" },
  datefrom: Date,
  dateto: Date,
  title: String,
  amount: Number,
  description: String,
  created_at: { type: Date, default: Date.now },
  updated_at: { type: Date, default: Date.now },
  status: Number
});

var HeadMgmt = mongoose.model("headmgmt", mgmtSchema);

HeadMgmt.find({})
  .populate({ path: "type", select: "headname" })
  .exec(function(err, result) {
    console.log(result);
  });

मेरे पास दो स्कीमा हैं, विदेशी कुंजी संदर्भ भी। दूसरी स्कीमा का कुछ मूल्य है। मुझे सूचियों को एक HTML तालिका में प्रदर्शित करने की आवश्यकता है। हेड स्कीमा से हेडनेम कैसे प्रिंट कर सकते हैं?

1
athira appu 6 जिंदा 2020, 11:37

1 उत्तर

सबसे बढ़िया उत्तर

mgmtSchema में आपको टाइप फ़ील्ड में रेफरी मान को Head से heads में बदलना होगा, क्योंकि आपने headsअपना हेड मॉडल इस तरह सेटअप किया था:

var Head = mongoose.model("heads", headSchema);

तो आपका mgmtSchema इस तरह होना चाहिए:

var mgmtSchema = new Schema({
  headtype: String,
  type: { type: Schema.Types.ObjectId, ref: "heads" },
  datefrom: Date,
  dateto: Date,
  title: String,
  amount: Number,
  description: String,
  created_at: { type: Date, default: Date.now },
  updated_at: { type: Date, default: Date.now },
  status: Number
});

आपके वर्तमान पॉप्युलेट कोड का परिणाम कुछ इस तरह होगा:

[
    {
        "_id": "5e13483dd62cd92e3c3e8dcd",
        "headtype": "headtype",
        "type": {
            "_id": "5e1347671b0bd339e0521139",
            "headname": "headname 1"
        },
        "title": "title",
        "amount": 123,
        "description": "description",
        "created_at": "2020-01-06T14:46:21.906Z",
        "updated_at": "2020-01-06T14:46:21.906Z",
        "__v": 0
    }
]
0
SuleymanSah 6 जिंदा 2020, 14:54