Мангуст Найти по ID ссылки - PullRequest
0 голосов
/ 13 июня 2019

, поэтому у меня есть две схемы: пользователь и компания

const UserSchema = new mongoose.Schema({
    _createdAt: Date,
    company: {type: mongoose.Schema.Types.ObjectId, ref: 'company'},
    email: String,
});


const CompanySchema = new mongoose.Schema({
    _createdAt: {
        type: Date,
        required: true
    },
    name: {
        type: String,
        required: true
    }
});

const userModel = mongoose.model("user", UserSchema, "user");
const companyModel = mongoose.model("company", CompanySchema, "company");

Теперь я хотел бы запросить конкретного пользователя по его идентификатору компании _id, но по какой-то причине это не работает, он возвращает пустой массив, даже если в моей базе данных есть пользователь с точным идентификатором объекта ObjectId.

userModel.find({company: "5cfa4352ffc1c8135d8276a4"})
         .exec((err, user) => {
             console.log(user);
         }

В моей оболочке Монго команда

db.user.find({company: "5cfa4352ffc1c8135d8276a4"})

возвращает пользователей, как и ожидалось, так почему это не работает в mongoose? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Попробуйте это

const ObjectId = require('mongodb').ObjectID;

затем

db.user.find({company: ObjectId("5cfa4352ffc1c8135d8276a4")})

Я надеюсь, что это будет работать

0 голосов
/ 13 июня 2019

Если вы хотите найти по этому идентификатору, вам, вероятно, нужно сделать следующее:

const mongojs = require('mongojs');
const ObjectId = mongojs.ObjectId;

db.user.find({company: ObjectId("5cfa4352ffc1c8135d8276a4")})

Поскольку вы используете moongose, вы можете получить ObjectId следующим образом:

const mongoose = require('mongoose');
const objectId = mongoose.Types.ObjectId('569ed8269353e9f4c51617aa')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...