Mongoose 关联查询问题

现在有两个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;

GameUser之间通过 Game 中 user 字段进行关联

现在的要求是通过用户的名字进行查询游戏记录,我使用了以下的代码

    Game.find({}).populate({path: 'user', match: {wechatName: 'kirno'}}).then(re => {
        console.log(re);
    })

如果用户名是存在的,查询结果没有问题。

但是如果是一个不存在的用户名,查询出来,只是 user 字段是空的,游戏记录还是查出来了

得出来的结果是

我希望查出来的时候如果用户是空的,游戏记录就查不出来,不知道怎么实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,888评论 0 15
  • 晚上八点,发现跳跳身体有点儿热。 可前一秒还在陪我一起刷鞋,而且用的是温水,但免不了他碰了几下凉水。 所以,就真的...
    宠爱by阅读 614评论 0 0
  • 有人说过,思维是翅膀。不知道是谁说的,知道是谁说的也没什么,这是一个很普通的比喻。当我们动用大脑去思考的时候,很容...
    最后一个小说jia阅读 239评论 0 0
  • 有人试图用手来控制别人,最后落得个身败名裂;有人用手创造财富,最后功成名就;还有人用手一砖一瓦的垒积,最后只求得一...
    好郝说话阅读 244评论 0 2