美文网首页
Mongoose 关联查询问题

Mongoose 关联查询问题

作者: kirno | 来源:发表于2017-07-12 17:19 被阅读0次

    现在有两个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 字段是空的,游戏记录还是查出来了

    得出来的结果是

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

    相关文章

      网友评论

          本文标题:Mongoose 关联查询问题

          本文链接:https://www.haomeiwen.com/subject/ybgbhxtx.html