Как получить документы из MongoDB? - PullRequest
0 голосов
/ 22 июня 2019

У меня есть база данных на MongoDB Atlas.Используя NodeJS, я установил соединение и попытался получить некоторые данные.

const client = new MongoClient(uri, { useNewUrlParser: true });
    client.connect(err => {

        if(err){
            console.log(err)
            return res.status(400).json({msg:"Error occured while trying to connect to database", error: err})
        }
        const collection = client.db("first-test").collection("members")
        // perform actions on the collection object
        // console.log(collection)
        collection.forEach(member => {
            console.log(member)
        })
        client.close();
        return res.status(200).json({msg:"success"})
    });

Когда я попытался console.log(collection), я получил большой объект в качестве вывода (я думаю, это то, что называется курсором)

Collection {
  s: {
    pkFactory: [Function: ObjectID] {
      index: 4705316,
      createPk: [Function: createPk],
      createFromTime: [Function: createFromTime],
      createFromHexString: [Function: createFromHexString],
      isValid: [Function: isValid],
      ObjectID: [Circular],
      ObjectId: [Circular]
    },
    db: Db {
      _events: [Object: null prototype] {},
      _eventsCount: 0,
      _maxListeners: undefined,
      s: [Object],
      serverConfig: [Getter],
      bufferMaxEntries: [Getter],
      databaseName: [Getter]
    },
// And so on ....

Когда я пытался collection.forEach(member => console.log(member)) я получил ошибку TypeError: collection.forEach is not a function.У меня вопрос, как можно получить мои данные из базы данных?

Ответы [ 2 ]

1 голос
/ 22 июня 2019

Я рекомендую использовать мангуст, это намного проще.

Но фактический код

const client = new MongoClient(uri, { useNewUrlParser: true });
    client.connect(err => throw err);

client.members.find({},(err, res)=>{
 console.log(res);
})
1 голос
/ 22 июня 2019

Вам не хватает шага, чтобы «найти» все документы.

от w3schools:

  dbo.collection("customers").find({}).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...