当我从其电子邮件中查询用户时:
User.findOne({email: 'a@a.com'}).done(function(err, u){console.log(u.sessionTokens);})
我得到了它的令牌列表:
[ { token: '8dfe6aa0-2637-4b3f-9a3c-3ae8dc225b77',
issuedAt: Tue Jan 14 2014 14:40:22 GMT+0100 (CET) } ]
但是,当我在此列表中查询令牌时,它不会检索用户:
User.findOne({'sessionTokens.token':'8dfe6aa0-2637-4b3f-9a3c3ae8dc225b77'}).done(function(err, u){console.log(u);})
=> undefined
有任何想法吗 ?这User.findOne({'sessionTokens.token':'8d...77'})
是一个正确的查询吗?
编辑
我的用户模型类似于:
module.exports = {
schema: true,
attributes: {
email: {
type: 'email',
required: true
},
encryptedPassword: {
type: 'string'
},
sessionTokens: {
type: 'array'
},
...
}
}
sessionToken 是 Array 类型的属性。该数组包含几个对象,例如:
{ token: '8dfe6aa0-2637-4b3f-9a3c-3ae8dc225b77',
issuedAt: Tue Jan 14 2014 14:40:22 GMT+0100 (CET) }
编辑
我已经用 mongo-sails 而不是 mongo-disk 进行了测试,这工作正常,但正如 Chad 指出的那样,这取决于所使用的适配器。