0

我已经很久没有使用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 解析它以获得我们正在寻找的伪(以另一种方式,我们无法findOne()在这种情况下使用).. .?

4

1 回答 1

0

要做的是在您的populate()电话中声明您的条件:

Db['group'].findOne({ token: "token" })
.populate('User', '', { pseudo: "John"} )
.exec();
于 2013-08-18T18:40:47.887 回答