我在使用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]
}
请问我应该如何解决该问题呢
Redis
的Hash
类型不支持多级的吧,所以你的position
必须得转成字符串。