【问题标题】:Can't find any entries in non-empty MongoDB collection [duplicate]在非空 MongoDB 集合中找不到任何条目 [重复]
【发布时间】:2019-04-20 12:59:57
【问题描述】:

我有这个架构:

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'
      }
    });

MongoDB中的这个文档:

但是当我尝试运行这个查询时,我得到一个空数组:

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);

    });
};

为什么?

【问题讨论】:

  • 为什么在查询中使用“new”?
  • 我在其他地方也看到过。而且我还实现了另一个 GET,只是在不同的表上,但语法与这里相同......它可以工作。
  • 我得到了一些新信息,我更新了原帖。

标签: node.js mongodb mongoose


【解决方案1】:

尝试在双引号内添加您的 _userId 键并删除新的,如下所示:

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

也可以试试这个快捷方式:

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

这应该可行。

【讨论】:

  • 我更新了原始帖子,因为我的问题不是来自查询过滤器参数,而是来自其他地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2018-01-30
  • 2023-02-24
  • 1970-01-01
  • 2017-11-09
  • 2019-08-05
  • 1970-01-01
相关资源
最近更新 更多