mongodb 将数据转换为字符串。怎么修?
mongodb convert data to string. how to fix?
我想从我的数据库中获取数据以使用变量。
这是我的数据库查询:
db.progress.find({username:socket},function(err,res){
我从哪些方面获得信息:
[ { _id: 61e180b54e0eea1454f8e5e6,
username: 'user',
exp: 0,
fraction: 'undf'} ]
如果我发送请求
db.progress.find({username:socket},{exp:1},function(err,res){
然后在return我会得到
[ { _id: 61e180b54e0eea1454f8e5e6, exp: 0 } ]
如何从接收到的数据中只提取 0。我想做这样的事情。
var findprogress = function(socket,cb){
db.progress.find({username:socket},function(err,res){
cb(res.exp,res.fraction)
})
}
findprogress(socket,function(cb){
console.log(cb.exp)//0
console.log(cb.fraction)//undf
})
但我不知道如何正确实施。
在这种情况下,我推荐聚合,这样您可以更轻松地操作您的投影数据。例如:
db.progress.aggregate([
{ $match: { username: socket } },
{ $project: { _id: 0, exp: 1 } }
])
通过这种方式,您可以直接告诉查询不包含通常默认包含的 objectId。
尝试把0
给_id:
db.progress.find({username:socket},{exp:1 , _id:0},function(err,res){
find
returns 一个数组,因此在访问字段之前需要 select 数组元素:
var findprogress = function(socket,cb){
db.progress.find({username:socket},function(err,res){
cb(res[0].exp,res[0].fraction)
})
}
我想从我的数据库中获取数据以使用变量。
这是我的数据库查询:
db.progress.find({username:socket},function(err,res){
我从哪些方面获得信息:
[ { _id: 61e180b54e0eea1454f8e5e6,
username: 'user',
exp: 0,
fraction: 'undf'} ]
如果我发送请求
db.progress.find({username:socket},{exp:1},function(err,res){
然后在return我会得到
[ { _id: 61e180b54e0eea1454f8e5e6, exp: 0 } ]
如何从接收到的数据中只提取 0。我想做这样的事情。
var findprogress = function(socket,cb){
db.progress.find({username:socket},function(err,res){
cb(res.exp,res.fraction)
})
}
findprogress(socket,function(cb){
console.log(cb.exp)//0
console.log(cb.fraction)//undf
})
但我不知道如何正确实施。
在这种情况下,我推荐聚合,这样您可以更轻松地操作您的投影数据。例如:
db.progress.aggregate([
{ $match: { username: socket } },
{ $project: { _id: 0, exp: 1 } }
])
通过这种方式,您可以直接告诉查询不包含通常默认包含的 objectId。
尝试把0
给_id:
db.progress.find({username:socket},{exp:1 , _id:0},function(err,res){
find
returns 一个数组,因此在访问字段之前需要 select 数组元素:
var findprogress = function(socket,cb){
db.progress.find({username:socket},function(err,res){
cb(res[0].exp,res[0].fraction)
})
}