Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose中的findOne子文档_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js Mongoose中的findOne子文档

Node.js Mongoose中的findOne子文档,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我正在尝试在Mongoose中对子文档进行findOne查询,但运气不太好 我的模式如下所示: var Team = mongoose.Schema({ teamName: String, teamURL: String, teamMembers: [{username: String, password: String, email: String, dateCreated: Date}], }); var Team = db.mode

我正在尝试在Mongoose中对子文档进行findOne查询,但运气不太好

我的模式如下所示:

var Team = mongoose.Schema({
    teamName:       String,
    teamURL:        String,
    teamMembers:    [{username: String, password: String, email: String, dateCreated: Date}],
});

var Team = db.model('Team', Team);
Team.findOne({'teamMembers.username': 'Bioshox'}, {'teamMembers.$': 1},
    function (err, team) {
        if (team) {
            console.log(team.teamMembers[0].email);
        }
    }
);
我只需要从使用此查询的文档中查找用户的电子邮件

Team.findOne({'teamMembers.username': 'Bioshox'}, {'teamMembers.$': 1}, function (err, team) {
    if (team) {
        console.log(team[1].email);
    }
});

任何帮助都将不胜感激

您缺少对象的
teamMembers
级别,因此您的代码需要更改为以下内容:

var Team = mongoose.Schema({
    teamName:       String,
    teamURL:        String,
    teamMembers:    [{username: String, password: String, email: String, dateCreated: Date}],
});

var Team = db.model('Team', Team);
Team.findOne({'teamMembers.username': 'Bioshox'}, {'teamMembers.$': 1},
    function (err, team) {
        if (team) {
            console.log(team.teamMembers[0].email);
        }
    }
);

您也可以使用.populate('teamMembers')吗?您可以解释一下
{'teamMembers.$':1}
或指向有关它的文档吗?
$
是一个位置运算符,它根据与查询选择器匹配的第一个元素来标识要更新的
teamMembers
数组的元素。我认为$positional操作符对猫鼬不起作用。。。“我一直在寻找如何解决这个问题……”JohnnyHK在评论中的文档重定向到“现在”。但是,他的答案是。我有一个非常类似的问题,你能看一下吗?