0

i have this schema:

var scheme = schema({
    name: { type: String, required: true },
    deleted: { type: Boolean, default: false },
    user: {
        type: ObjectId,
        ref: 'User'
    },
    created: {type: Date, default: Date.now},
    modified: {type: Date, default: Date.now},
    eventinfo: { type: String, required: false },
    street: { type: String, required: false },
    city: { type: String, required: false },
    country: { type: String, required: false },
    postalcode: { type: String, required: false },
    usecurrentlocation: { type: Boolean, required: false },
    schedule_agenda_html: { type: String, required: false },
    gspsetup_html: { type: String, required: false },
    evdropboxstat: { type: Boolean, required: false },
    evsponsors_html: { type: String, required: false },
    evexhibitors_html: { type: String, required: false },
    floorplan_html: { type: String, required: false },
    social_media_fb: { type: String, required: false },
    social_media_tw: { type: String, required: false },
    social_media_li: { type: String, required: false },
    evorganizers_html: { type: String, required: false },
    coverscreen_img: { type: String, required: false },
    logo_img: { type: String, required: false },
    background_img: { type: String, required: false },
    background_color: { type: String, required: false },
    event_fromdate: {type: Date, default: Date.now},
    event_todate: {type: Date, default: Date.now},
    attendees_feedback: { type: Boolean, required: false },
    social_network: { type: Boolean, required: false },
    feature_icon_color: { type: String, required: false }
    });
exports.EacEvent = mongoose.model("EacEvent", scheme);

i need to find all the EacEvents where user _id is equal to some thing like this (56a8a1eaf7a3289c10c9ed30) i have tried many things but either i am getting all the EacEvents or no EacEvent. thanks

Route File

here is my route file code which i am using to get the required results..

var models = require('../models')
    ,mongoose = require('mongoose')
    var schema = mongoose.Schema;
    var ObjectId = schema.ObjectId;
// var ObjectID = schema.ObjectId;
exports.myeventapps = function (req, res) {
    var eac_userid;
    if (req.user){
        eac_userid =  JSON.stringify(req.user._id);
        console.log('================================' + eac_userid);
    }
    //models.EacEvent.find().exec(function(err, myevents) {
    models.EacEvent.find({ deleted: false,'user._id':ObjectId(eac_userid)}).sort({ modified: -1 }).exec(function(err, myevents) {
        res.locals.myevents = myevents;     
        console.log('================================' + myevents);
        res.render('eac_myevent_apps', { title: "My Event Apps", myeventapps: myevents });
    });
}

i have also tried comparing user._id in .populate() function but did not get the required results

Cœur
  • 37,241
  • 25
  • 195
  • 267
akmal saeed
  • 41
  • 1
  • 1
  • 10

1 Answers1

0

Please try it, match user field directly, rather than user._id. Refer to Mongoose Populate.

 models.EacEvent.find({ deleted: false, 'user': ObjectId(eac_userid)}).sort(...

Maybe we can use the req.user._id directly

 models.EacEvent.find({ deleted: false, 'user': req.user._id}).sort(...
zangw
  • 43,869
  • 19
  • 177
  • 214
  • cannot user `req.user._id` it gives _id is undefined.. when trying the `'user': ObjectId(eac_userid)` it show no result – akmal saeed Jan 27 '16 at 13:52
  • @akmalsaeed, if `req.user._id` is undefined, how does `eac_userid = JSON.stringify(req.user._id);` work? or the value of eac_userid is null? – zangw Jan 27 '16 at 13:54
  • Thanks @zangwa i tried it before but it didnt worked ... now its like a miracle heppend :D ...thanks again :) – akmal saeed Jan 27 '16 at 13:59