Javascript 奇怪的mongodb响应格式
我有一个mongodb数据库文档,其中包含一个数组Javascript 奇怪的mongodb响应格式,javascript,arrays,node.js,mongodb,Javascript,Arrays,Node.js,Mongodb,我有一个mongodb数据库文档,其中包含一个数组 { "_id":ObjectId("588116a66f7d758b144177f7"), "name":"Michael", "email":"mick@shift.com", "company":"Shift", "username":"MichaelP", "password":"$2a$10$unH/7anPylxk1x5zk6/so.YcByZqQoBdFi9IlWnHty2gNouUrt7ea",
{
"_id":ObjectId("588116a66f7d758b144177f7"),
"name":"Michael",
"email":"mick@shift.com",
"company":"Shift",
"username":"MichaelP",
"password":"$2a$10$unH/7anPylxk1x5zk6/so.YcByZqQoBdFi9IlWnHty2gNouUrt7ea",
"position":"Manager",
"shifts":[
"day",
"day",
null,
"night",
null,
null,
null,
"15"
],
"score":[
null,
"550",
null
],
"__v":0
}
我想在我的网页上打印出shifts[7]
。我是node.js的新手,但我可以打印{{username}}
或{company}
很好,但是shift[7]
打印为'{0':'1',1':'5'}
我想这是我index.js中的一个简单解决方案,但我似乎无法理解
我会在下面添加我的index.js代码的缩短版本,谢谢你的帮助
router.get('/hub',ensureAuthenticated, function(req, res, next){
var collection = db.collection('users');
var totalHours= req.user.shifts[7] + '';
var totalhour=0;
res.render('hub', {username: req.user.username,
company: req.user.company,
position: req.user.position,
totalHours: totalhour
});
});
我认为问题在于您使用的是req.user而不是users response,并且您没有得到单个对象的响应,因此出现这种情况时,您应该传递_id以获得单个用户值,然后将其用于进一步的处理
router.get('/hub/:id',ensureAuthenticated, function(req, res, next){
var collection = Restangular.One('users',req.user._id);
collection.get().then(function(err,user){
var totalHours= users.shifts[7] + '';
var totalhour=0;
$scope.user=user;
$scope.totalHours = user.shift[7];
},函数(err){
log(“err”,err)})
对于html中的总小时数,只需打印{totalHours}您是否尝试过
var totalHours=req.user.shifts[7]。join(“”)
?您使用的嵌套数组错误。嵌套数组应该包含对象。谢谢,@JyothiBabuAraja它说req.user.shifts[7]。join不是一个函数,我应该单独编写函数吗?@Tom会将数组重新定义为对象数组,看看是否有效,谢谢@LiveLongCandy51抱歉join()
适用于数组,而不是对象。我以为shift[7]
是数组。
res.render('hub', {username: req.user.username, company:req.user.company, position: req.user.position, totalHours: totalhour})
});