Home > Software design >  MongoDB .find() doesn't return the right data
MongoDB .find() doesn't return the right data

Time:05-19

I'm trying get the data from mongodb but whenever i try to use find() I get following response. I'm very new to Mongo and just don't know why this is happening. Also this code is written in TypeScript and used to code a Discord bot.

Query {
  _mongooseOptions: {},
  _transforms: [],
  _hooks: Kareem { _pres: Map(0) {}, _posts: Map(0) {} },
  _executionStack: null,
  mongooseCollection: Collection {
    collection: null,
    Promise: [Function: Promise],
    modelName: 'verifiedUsers',
    _closed: false,
    opts: {
      autoIndex: true,
      autoCreate: true,
      schemaUserProvidedOptions: {},
      capped: false,
      Promise: [Function: Promise],
      '$wasForceClosed': undefined
    },
    name: 'verifiedUsers',
    collectionName: 'verifiedUsers',
    conn: NativeConnection {
      base: [Mongoose],
      collections: [Object],
      models: [Object],
      config: {},
      replica: false,
      options: null,
      otherDbs: [],
      relatedDbs: {},
      states: [Object: null prototype],
      _readyState: 0,
      _closeCalled: false,
      _hasOpened: false,
      plugins: [],
      id: 0,
      _queue: [],
      _listening: false
    },
    queue: [],
    buffer: true,
    emitter: EventEmitter {
      _events: [Object: null prototype] {},
      _eventsCount: 0,
      _maxListeners: undefined,
      [Symbol(kCapture)]: false
    }
  },
  model: Model { verifiedUsers },
  schema: Schema {
    obj: { ign: [Object], memberid: [Object] },
    paths: {
      ign: [SchemaString],
      memberid: [SchemaString],
      _id: [ObjectId],
      __v: [SchemaNumber]
    },
    aliases: {},
    subpaths: {},
    virtuals: { id: [VirtualType] },
    singleNestedPaths: {},
    nested: {},
    inherits: {},
    callQueue: [],
    _indexes: [],
    methods: {},
    methodOptions: {},
    statics: {},
    tree: {
      ign: [Object],
      memberid: [Object],
      _id: [Object],
      __v: [Function: Number],
      id: [VirtualType]
    },
    query: {},
    childSchemas: [],
    plugins: [ [Object], [Object], [Object], [Object], [Object] ],
    '$id': 1,
    mapPaths: [],
    s: { hooks: [Kareem] },
    _userProvidedOptions: {},
    options: {
      typeKey: 'type',
      id: true,
      _id: true,
      validateBeforeSave: true,
      read: null,
      shardKey: null,
      discriminatorKey: '__t',
      autoIndex: null,
      minimize: true,
      optimisticConcurrency: false,
      versionKey: '__v',
      capped: false,
      bufferCommands: true,
      strictQuery: true,
      strict: true,
      pluralization: true
    },
    '$globalPluginsApplied': true
  },
  op: 'find',
  options: {},
  _conditions: {},
  _fields: undefined,
  _update: undefined,
  _path: undefined,
  _distinct: undefined,
  _collection: NodeCollection {
    collection: Collection {
      collection: null,

This is the code I'm using: Schema:

import mongoose from 'mongoose'

const verifiedUsers = new mongoose.Schema({
    ign: {
        type: String,
        required: true
    },
    memberid: {
        type: String,
        required: true
    },
})

export default mongoose.model('verifiedUsers', verifiedUsers, 'verifiedUsers')

get Verfifed Users:

import mongoose from 'mongoose'
import verifiedUsers from './schemas/verified-users'

client.on('ready', async () => {
    await mongoose.connect(
        process.env.mongo_uri || '',
        {
            keepAlive: true
    })
})

async function getVerifiedUsers() {
    console.log(verifiedUsers.find())
}
getVerifiedUsers()

Why is this happening and how can I prevent this?

CodePudding user response:

It seems like you need to call .exec().

Check Model.find() and this answer.

Maybe someone else can explain why it was decided to do it like this instead of awaiting .find() to get the data.

  • Related