现在有两个Schema ,分别是 用户
游戏记录
以下是实现
User.js
const mongoose = require('./Schema');
const {Schema} = mongoose;
module.exports = mongoose.model('User', {
wechatName: String,
registerTime: {default: Date.now(), type: Date},
password: String,
username: String,
openId: String,
token: String,
/**
* 用户ID
*/
userId:String
});
Game.js
/**
* Created by kirno on 2017/7/11.
*/
const mongoose = require('./Schema');
const Game = mongoose.model('Game', {
/**
* 中奖结果 单位 分
*/
winResult: Number,
/**
* 安慰奖 单位 分
*/
consolationPrize: Number,
/**
* 游戏时间
*/
gameTime: {default: Date.now(), type: Date},
/**
* 用户ID
*/
user: {type: mongoose.Schema.ObjectId, ref: 'User'}
});
module.exports = Game;
Game
与User
之间通过 Game 中 user
字段进行关联
现在的要求是通过用户的名字进行查询游戏记录,我使用了以下的代码
Game.find({}).populate({path: 'user', match: {wechatName: 'kirno'}}).then(re => {
console.log(re);
})
如果用户名是存在的,查询结果没有问题。
但是如果是一个不存在的用户名,查询出来,只是 user 字段是空的,游戏记录还是查出来了
得出来的结果是
我希望查出来的时候如果用户是空的,游戏记录就查不出来,不知道怎么实现
网友评论