很长一段时间我没有使用MongoDB,我正在做一些查询,而且有一个我无法实现的基本情况:
//Works fine
Db['group'].findOne({ token: "token" })
.exec();
//Doesn't return the result
Db['group'].findOne({ "User.pseudo": "John", token: "token" })
.populate('User')
.exec();
//Return undefined
Db['group'].findOne({ User: { pseudo: "John" }, token: "token" })
.populate('User')
.exec();
var UserSchemaModel = {
pseudo: { type: String, required: true }
};
var GroupSchemaModel = {
User: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
token: { type: String, required: true }
};
也许不可能查询这个,我们必须解析所有与令牌匹配的用户,然后用javascript解析它以获取我们正在寻找的伪(换句话说,我们无法使用{{1在那种情况下)......?
答案 0 :(得分:0)
要做的是将您的条件声明为populate()
电话:
Db['group'].findOne({ token: "token" })
.populate('User', '', { pseudo: "John"} )
.exec();