Node.js Mongoose中的findOne子文档
我正在尝试在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
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在评论中的文档重定向到“现在”。但是,他的答案是。我有一个非常类似的问题,你能看一下吗?