用mongoose查询和插入修改的例子

使用mongoose后,感觉只剩mongodb数据库简单好多了
mongoose的Schema的定义例子https://blog.csdn.net/zdhsoft/article/details/79890131

let {accountSchema} = require("../schema"); //这个看前面文章中定义

class accountDao {
    /**
     * 查找指定的账号信息
     * @static
     * @async
     * @param {String} name         账号名称
     * @param {Number} gameid       指定的类型
     * @param {Number} platformid   平台Id
     * @return {Model} 如果没有数据,则返回null
     */
    static async GetAccount(name, gameid, platformid) {
        return await accountSchema.findOne({name, gameid, platformid}).exec();//, cb);
    }

    static async GetAccountById(id) {
        return await accountSchema.findOne({id}).exec();//, cb);
    }

    /**
     * 插入一个访问账号
     * @param {Number} platformid 来源id
     * @param {String} name 账号
     * @param {String} nickname 昵称
     * @param {String} password 密码
     * @param {Number} gameid 游戏id
     * @return {{code:Number, errmsg:String, data:object}} 返回的结果
     */
    static async InsertGuestAccount(platformid, name, nickname, password, gameid) {
        let obj = { platformid, name, nickname, password, gameid};
        let n = new accountSchema(obj);
        try {
            let r = await n.save();
            return 0;
        } catch (e) {
            return -1;
        }
    }
}
exports.accountDao = accountDao;

下面是修改的例子:

        let findCond = [unionid, gameid, platformid];
        let record = await accountDao.GetAccount(...findCond);            
    record.lastlogintime = Date.now();
    record.nickname      = nickname;
    record.photo         = headimgurl;
    record.markModified('lastlogintime');
    record.markModified('nickname');
    record.markModified('photo');
    record.save();

猜你喜欢

转载自blog.csdn.net/zdhsoft/article/details/79897921