Отказ от цепочки обещаний после добавления коллекций в mongoDB - PullRequest
0 голосов
/ 08 ноября 2019

я пытаюсь получить коллекцию в mongo db, преобразовать ее в массив и сравнить с уже созданным массивом, чтобы просто сохранить новые записи.

//posts is an already created array with information

//setting a var for the collection
let m_pendingPosts = db.collection("pendingPosts");
    //getting collections and converting them to an array, also creating a callback
    m_pendingPosts.find().toArray((err, pendingPosts) => {
      posts.forEach(post => {
        let found = pendingPosts.find(pendingPost => {
          return pendingPost.id == post.id;
        });
        // if is NOT in the collection, it adds it
        if (!found) {
          db.collection('pendingPosts').insertOne({
            id: post.id,
            url: post.url,
            permalink: post.permalink,
            author: post.author
          })
          .then(() => {
            // the code actually arrives here, it adds the items to the collection, but it triggers the error here
            console.log("added things to the database")
          })
          .catch(err => {
            // code is not triggering here
            if (err) console.log("error")
          });
        }
      });
    });

но я всегда получаю эту ошибку: Unhandled rejection TypeError: Promise chain rejection: Attempted to call undefined which is not a function.

это фактически добавляет то, что я хочу в базу данных, мой код работает, но после добавления их я получаю этоошибка, кто-нибудь знает, что я делаю не так?

...