Javascript 奇怪的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",

我有一个mongodb数据库文档,其中包含一个数组

{
   "_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})
});