redis使用hash存入json对象时,如何解决嵌套对象变成[object,object]问题。

我在使用ioredis 的hmset()方法存入json对象,如:

{
    id:"0001",
    name:"ande",
    position:{
        lat:113.88988,
        lon:257289
    }
    
}

当我获取该键值时,变成:

{
    id:"0001",
    name:"ande",
    position:[object,object]
    
}

我如何才能得到我的position的值;
以为我的position要实时更新,我不想直接转为字符串存。请问各位,如何解决呢~感谢,工作顺利!
具体代码如下:

const  Redis = require("ioredis");
const  redis = new Redis();

 // 创建用户对象(可覆盖)
exports.user_obj = async(accountID,nameID,obj) => {
    //存入obj对象
    //obj = {
    // accountID:'',
    // name:'',
    // position:{
    //   lat:'26.26890',
    //   lon:'113.27930'
    // }
    //}
    redis.hmset('user:'+accountID+':'+nameID,obj);

}
//读取用户对象时
/* 获取单个用户 */
var user_get = (query) => {

return new Promise((resolve,reject) => {
    redis.hgetall(query,(err,result) => {
        if(err){
            reject(err);
        }
        resolve(result);
    })
   })
}

读出来,obj对象就变成:
{
    accountID:'',
    name:'',
    position:[object,object]
}

请问我应该如何解决该问题呢
阅读 7k
1 个回答

RedisHash类型不支持多级的吧,所以你的position必须得转成字符串。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题