繁体   English   中英

如何在猫鼬中通过“子文档”属性查找对象?

[英]How to find the object by Sub Document property in Mongoose?

我已经创建了2个这样的架构

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);

然后,我想找到也具有链接的用户对象google.com

User.find({'links.url': 'http://google.com' },function(err, foundLinks){
    console.log(foundLinks);
});

但是返回了空列表

[]

有人可以建议我如何解决吗?

这是完整的源代码:

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);
           });
    });
});

非常感谢你。

ps。 对不起,我的英语不好。

现在,我先查询链接的ID,然后再通过链接的ID为用户查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM