搜尋

首頁  >  問答  >  主體

"Mongoose Populate時Array.push()無法正常運作"

我讀了另一篇關於這個問題的帖子,但我無法弄清楚如何將其應用到我的情況(使用mongoose時node js Array.push()不起作用)

這是我的Mongoose非同步populate函數,我想要做的是將一個值推入一個包含每個評論的最終數組中,稍後我會對其進行某些操作。然而,.push()不起作用,我總是得到一個空數組;根據我所讀的內容,這與for循環是同步的,無法接受非同步值有關,但我不確定該如何修復它

//空数组将被填充所有分数
const allReviewsRating = []
this.populate("reviews").then(async function (allReviews) {
  for (const review of allReviews.reviews) {
    allReviewsRating.push(review.rating)

  }
  // async.map(review, allReviews.reviews)

})

但即使我做類似這樣的事情

const allReviewsRating = []
this.populate("reviews").then(async function (allReviews) {
  allReviewsRating.push(`1`)
  for (const review of allReviews.reviews) {
    allReviewsRating.push(review.rating)

  }
  // async.map(review, allReviews.reviews)

})

最終的陣列為空,這讓我更加困惑

我想知道我需要做什麼才能讓我的陣列不為空,並且實際上具有我想要的值

P粉464113078P粉464113078483 天前533

全部回覆(1)我來回復

  • P粉289775043

    P粉2897750432023-09-09 00:07:44

    我認為你需要檢查一下,this.populate()函數沒有填充reviews,如果它填充了,那麼問題可能出在allReviews.reviews,即所有評論中沒有評論。其他所有功能都正常。我在我的系統上進行了測試。

    回覆
    0
  • 取消回覆