I have created 2 schemas like this
var LinkSchema = new mongoose.Schema({
url: String,
name: String
});
var Link = mongoose.model('Link', LinkSchema);
var UserSchema = new mongoose.Schema({
name: String,
links: [LinkSchema]
});
var User = mongoose.model('User', UserSchema);
Then I would like to find the user object that has link too google.com
User.find({'links.url': 'http://google.com' },function(err, foundLinks){
console.log(foundLinks);
});
but the empty list was returned
[]
Could anyone suggest me how can I solve it?
Here is full source code:
var mongoose = require('mongoose');
var async = require('async');
var Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/test');
var LinkSchema = new mongoose.Schema({
url: String,
name: String
});
var Link = mongoose.model('Link', LinkSchema);
var UserSchema = new mongoose.Schema({
name: String,
links: [LinkSchema]
});
var User = mongoose.model('User', UserSchema);
var link = new Link();
link.url = "http://google.com";
link.name = "Google";
link.save(function(err,link){
//console.log(link);
var user = new User();
user.name = "Varavut";
user.links.push(link._id);
user.save(function(err,user){
//console.log(user);
User.find({'links.url': 'http://google.com' },function(err, foundLinks){
console.log(foundLinks);
});
});
});
Thank you very much.
ps. Sorry for my bad English.