MERN Stack Developer & Certified Neo4j Professional with over 5 years of experience. Love to learn and build new things. When not coding, you can find me exploring new tech, games & books.
There is a concept called "Virtuals". I came across it when I was thinking the same thing. I can only give you hint about it because I have not learned or applied them. In virtuals, you define the conditions for virtuals: 'localField' and 'foreignField'. Local field refers to the name of the field of your current Schema. Foreign field is the name of the field which you are using in other schema to refer to your current Schema. Then you use populate normally.
// modal = AuthorsconstauthorsSchema={name:String,article:String}// model = ArticlesconstarticlesSchema={title:String}authorsSchema.virtual("yahoo"// can be any name for your virtual, used as key to populate{ref:"Articles",localField:"article",// name of field in author's schemaforeignField:"title",})constAuthors=mongoose.model('Authors',authorsSchema);constArticles=mongoose.model('Articles',articlesSchema);// using populateAuthors.find({}).populate("yahoo")// name of virtual
There maybe some mistake in above example but hope it helps you understand the basics atleast.
Maybe once I get time to study, I will write about it as well. :)
MERN Stack Developer & Certified Neo4j Professional with over 5 years of experience. Love to learn and build new things. When not coding, you can find me exploring new tech, games & books.
MERN Stack Developer & Certified Neo4j Professional with over 5 years of experience. Love to learn and build new things. When not coding, you can find me exploring new tech, games & books.
Thanks, that's helpful. But the "yahoo" could be anything, when we call .populate("field name of Authors"). There are something still not clear. However, I get over it by modify data type of _id field.
MERN Stack Developer & Certified Neo4j Professional with over 5 years of experience. Love to learn and build new things. When not coding, you can find me exploring new tech, games & books.
MERN Stack Developer & Certified Neo4j Professional with over 5 years of experience. Love to learn and build new things. When not coding, you can find me exploring new tech, games & books.
Hi Neural. I don't think, we can find or filter items based on populated items. It may also slow down the query as well.
I would say, go for aggregation, because in aggregation we have better control over how we structure and filter data in different steps. Populate is good for simple to intermediate scenarios but aggregation is more helpful when you need to handle a little complex to advance scenarios
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
There is a concept called "Virtuals". I came across it when I was thinking the same thing. I can only give you hint about it because I have not learned or applied them. In virtuals, you define the conditions for virtuals: 'localField' and 'foreignField'. Local field refers to the name of the field of your current Schema. Foreign field is the name of the field which you are using in other schema to refer to your current Schema. Then you use populate normally.
There maybe some mistake in above example but hope it helps you understand the basics atleast.
Maybe once I get time to study, I will write about it as well. :)
For anyone that wants more info, you can read more here. mongoosejs.com/docs/tutorials/virt...
Thanks @paras594 for the article, really helpful
Welcome and thanks for the reference !! You made the article more useful :)
Thank you for helpfull explaination. You have explained all in easy way and clearly. I wish you good luck!
I am glad you found it helpful. Thank you as well :)
You too Good Luck !!
Thanks, that's helpful. But the "yahoo" could be anything, when we call
.populate("field name of Authors")
. There are something still not clear. However, I get over it by modify data type of _id field.Good...things are not 100% clear to me as well...but I am sure after trying and testing we can understand it better :)
Hello paras wanted to know how you can find or filter items based on the populated items
Hi Neural. I don't think, we can find or filter items based on populated items. It may also slow down the query as well.
I would say, go for aggregation, because in aggregation we have better control over how we structure and filter data in different steps. Populate is good for simple to intermediate scenarios but aggregation is more helpful when you need to handle a little complex to advance scenarios