Почему ObjectID не определен в Mangodb? - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь запросить мою MongoDB, найдя определенный «_id», но новый ObjectID не справляется.И я пытаюсь создать переменную, содержащую случайный ObjectID с помощью «var obj = new ObjectID ()», который также не работает.Затем я проверяю версию MongoDB, и она актуальна (версия db v4.0.2).Подключение к серверу работает нормально.Какие-нибудь мысли?Спасибо.

Моя коллекция:

[
  {
    "_id": "5bc9fe6683dfb93706fe8a24",
    "name": "Luis",
    "occupation": "Doctor"
  },
  {
    "_id": "5bc9fe6683dfb93706fe8a25",
    "name": "Peter",
    "occupation": "Student"
  }
]

Код Mangodb:

const {MongoClient} = require('mongodb');



MongoClient.connect('mongodb://localhost:27017/NewApp',(err, client) => {

    if(err){
        return console.log("Unable to connect to MongoDB server");
    }


    console.log("Connect to MongoDB server");
    const db = client.db('NewApp');


    db.collection('Users').find({"_id": new ObjectID("5bc9fe6683dfb93706fe8a24")}).toArray().then((data) => {
        console.log(JSON.stringify(data, undefined, 2));

    },(error) => {

        if(error){console.log("Unable to fetch the data", error)}
    });


    client.close();
});

Ошибка:

Connect to MongoDB server
/node_modules/mongodb/lib/operations/mongo_client_ops.js:466
      throw err;
      ^

ReferenceError: ObjectID is not defined
at MongoClient.connect ...

1 Ответ

0 голосов
/ 19 октября 2018

Просто замените первую строку своего кода на

const { MongoClient, ObjectID } = require('mongodb');

Вам необходимо импортировать класс ObjectID, чтобы использовать его.Вы можете увидеть список всех экспортов здесь: https://github.com/mongodb/node-mongodb-native/blob/master/index.js

...