how to get information of another collection with lookup
up vote
0
down vote
favorite
I have 2 collections: Movie and User. in Movie I saved information about movies such as stars who actors that play in movie. i saved this field as an array in Movie collection. now I want to write a query that return stars name. but this name field saved in User collection. how can I extract data from another collection to this collection? I write this function but it's wrong and stars_doc is empty.
this is my function :
async function starsActMostMovies()
const res = await Movie.aggregate([
$unwind: '$stars'
,
$lookup:
from: "User",
localField: "_id",
foreignField : "stars",
as: "stars_doc"
,
$group:
_id : '$stars' ,
count : $sum : 1
,
$sort: count: -1
])
return res
starsActMostMovies().then(function(result)
console.log(result))
and in this link I wrote my database models.
mongoose aggregation
add a comment |
up vote
0
down vote
favorite
I have 2 collections: Movie and User. in Movie I saved information about movies such as stars who actors that play in movie. i saved this field as an array in Movie collection. now I want to write a query that return stars name. but this name field saved in User collection. how can I extract data from another collection to this collection? I write this function but it's wrong and stars_doc is empty.
this is my function :
async function starsActMostMovies()
const res = await Movie.aggregate([
$unwind: '$stars'
,
$lookup:
from: "User",
localField: "_id",
foreignField : "stars",
as: "stars_doc"
,
$group:
_id : '$stars' ,
count : $sum : 1
,
$sort: count: -1
])
return res
starsActMostMovies().then(function(result)
console.log(result))
and in this link I wrote my database models.
mongoose aggregation
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have 2 collections: Movie and User. in Movie I saved information about movies such as stars who actors that play in movie. i saved this field as an array in Movie collection. now I want to write a query that return stars name. but this name field saved in User collection. how can I extract data from another collection to this collection? I write this function but it's wrong and stars_doc is empty.
this is my function :
async function starsActMostMovies()
const res = await Movie.aggregate([
$unwind: '$stars'
,
$lookup:
from: "User",
localField: "_id",
foreignField : "stars",
as: "stars_doc"
,
$group:
_id : '$stars' ,
count : $sum : 1
,
$sort: count: -1
])
return res
starsActMostMovies().then(function(result)
console.log(result))
and in this link I wrote my database models.
mongoose aggregation
I have 2 collections: Movie and User. in Movie I saved information about movies such as stars who actors that play in movie. i saved this field as an array in Movie collection. now I want to write a query that return stars name. but this name field saved in User collection. how can I extract data from another collection to this collection? I write this function but it's wrong and stars_doc is empty.
this is my function :
async function starsActMostMovies()
const res = await Movie.aggregate([
$unwind: '$stars'
,
$lookup:
from: "User",
localField: "_id",
foreignField : "stars",
as: "stars_doc"
,
$group:
_id : '$stars' ,
count : $sum : 1
,
$sort: count: -1
])
return res
starsActMostMovies().then(function(result)
console.log(result))
and in this link I wrote my database models.
mongoose aggregation
mongoose aggregation
edited Nov 10 at 13:12
asked Nov 10 at 13:06
Fahom
275
275
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
Looking at your database models I think you may have the incorrect ref string in your movie schema definition. Inside of your movie schema you have:
stars:[
type: Schema.Types.ObjectId,
ref: 'userSchema'
],
but your user model is defined as:
var User = mongoose.model('user', userSchema);
The ref
in your movie schema needs to refer to the name you give the user model which is in this case is 'user'
not userSchema
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
Looking at your database models I think you may have the incorrect ref string in your movie schema definition. Inside of your movie schema you have:
stars:[
type: Schema.Types.ObjectId,
ref: 'userSchema'
],
but your user model is defined as:
var User = mongoose.model('user', userSchema);
The ref
in your movie schema needs to refer to the name you give the user model which is in this case is 'user'
not userSchema
add a comment |
up vote
0
down vote
accepted
Looking at your database models I think you may have the incorrect ref string in your movie schema definition. Inside of your movie schema you have:
stars:[
type: Schema.Types.ObjectId,
ref: 'userSchema'
],
but your user model is defined as:
var User = mongoose.model('user', userSchema);
The ref
in your movie schema needs to refer to the name you give the user model which is in this case is 'user'
not userSchema
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
Looking at your database models I think you may have the incorrect ref string in your movie schema definition. Inside of your movie schema you have:
stars:[
type: Schema.Types.ObjectId,
ref: 'userSchema'
],
but your user model is defined as:
var User = mongoose.model('user', userSchema);
The ref
in your movie schema needs to refer to the name you give the user model which is in this case is 'user'
not userSchema
Looking at your database models I think you may have the incorrect ref string in your movie schema definition. Inside of your movie schema you have:
stars:[
type: Schema.Types.ObjectId,
ref: 'userSchema'
],
but your user model is defined as:
var User = mongoose.model('user', userSchema);
The ref
in your movie schema needs to refer to the name you give the user model which is in this case is 'user'
not userSchema
answered Nov 10 at 16:11
Bobby
16
16
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239251%2fhow-to-get-information-of-another-collection-with-lookup%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown