"Mongoose Populate時Array.push()無法正常運作"
P粉464113078
P粉464113078 2023-09-08 11:50:21
0
1
486

我讀了另一篇關於這個問題的帖子,但我無法弄清楚如何將其應用到我的情況(使用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粉464113078
P粉464113078

全部回覆(1)
P粉289775043

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板