This post has been de-listed
It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.
I am currently working on making a GET request on my backend that maps out all reviews based on the item number attached to the review. I've made a few dummy reviews that share the same item number (but have different _id values) and am trying to figure out how to create this GET request.
I can get all reviews to map out in general but not by item number
router.get("/:id", async (req, res) => {
const populateQuery = [
{
path: "user",
select: ["username"],
},
{
path: "reviews",
select: ["item"],
populate: { path: "user", select: ["username"] },
},
]
const reviews = await Review.find({})
response.json(reviews.map((review) => review.toJSON()))
})
An example review would be:
- _id:615323ee97dc7d1960350e33
- text:"This could've been worse but I'm glad they actually tried this time"
- item:168
- _id:615b95dfd6a4fc3814139ad4
- text:"Delete this review and this game"
- item:168
- _id:615b968e9dafdbead0de3fde
- text:"Witcher is amazing"
- item:4062
Basically, I want the function to show the ones with item:168 mapped out and separate from the Witcher review.
Currently getting the error of TypeError: Cannot read properties of undefined (reading 'get')
My model schema for reviews is this
UPDATE : Added this line and it gave me everything I needed
const reviews = await Review.find({ item: { $in: [item] } })
import mongoose from "mongoose"
const { ObjectId } = mongoose.Schema.Types
const reviewSchema = new mongoose.Schema(
{
text: {
type: String,
required: true,
maxlength: 500,
},
author: {
type: ObjectId,
ref: "User",
},
created: {
type: Date,
default: Date.now,
},
item: {
type: Number,
required: true,
}
},
{ timestamps: true }
)
const Review = mongoose.model("Review", reviewSchema)
export default Review
Subreddit
Post Details
- Posted
- 3 years ago
- Reddit URL
- View post on reddit.com
- External URL
- reddit.com/r/learnprogra...