0

I have this schema:

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

var UsersCoursesSchema = new Schema({
      _User: {
        type: Schema.Types.ObjectId,
        ref: 'Users'
      },
      _Course: {
        type: Schema.Types.ObjectId,
        ref: 'Courses'
      }
    });

And this document in MongoDB:

enter image description here

But when I try to run this query, I get an empty array as a result:

var mongoose = require('mongoose');
var UsersCourses = mongoose.model('UsersCourses');

exports.getUserCourses = function(req, res) {
    UsersCourses.find({}, function(err, userCourses) {
        if (err)
            res.send(err);

        res.json(userCourses);

    });
};

Why?

Tudvari
  • 2,715
  • 2
  • 14
  • 33

1 Answers1

0

try adding your _userId key inside double quotes and removing new as follows:

exports.getUserCourses = function(req, res) {
UserCourses.find({"_User": ObjectId("5bef2b759d8e490944af9e96")}, function(err, userCourses) {
    });
};

also try with this shortcut:

exports.getUserCourses = function(req, res) {
UserCourses.find(ObjectId("5bef2b759d8e490944af9e96"), function(err, userCourses) {
    });
};

this should works.

vitomadio
  • 1,140
  • 8
  • 14
  • I updated the original post because my issue isn't derived from the query filter parameters, but from somewhere else. – Tudvari Nov 17 '18 at 17:05