{
"_id" : ObjectId("587f5455da1da85d2bd01fc5"),
"totalTime" : 0,
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"workSpaceId" : ObjectId("57906c24f4add282195d0a8a"),
"locationId" : ObjectId("5790629c841f1a9913b12104"),
"projectId" : ObjectId("57906d33f4add282195d0aa2"),
"title" : "asdf asdfasdf",
"subTitles" : [
{
"childrensTitle" : "fffffffffffff",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:32.974Z"),
"subTitles" : [
{
"childrensTitle" : "Ufffffff",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906ce1f4add282195d0a96"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:37.151Z"),
"subTitles" : [
{
"childrensTitle" : "date n time",
"createdBy" : ObjectId("57906bf8f4add282195d0a88"),
"lastUpdatedBy" : ObjectId("57906bf8f4add282195d0a88"),
"totalTime" : 0,
"created_at" : ISODate("2017-01-18T11:41:40.716Z"),
"subTitles" : [ ],
"_id" : ObjectId("587f5474da1da85d2bd01fcb")
}
],
"_id" : ObjectId("587f5471da1da85d2bd01fca")
}
],
"_id" : ObjectId("587f546cda1da85d2bd01fc9")
}
],
"created_at" : ISODate("2017-01-18T11:41:09.301Z"),
"__v" : 3
}
我正在尝试打印每个级别的totalTime
,但我只能将其打印到2层...之后它是undefined
。例如:
console.log(mainTitle[0].subTitles[req.body.index].subTitles[req.body.index].subTitles[req.body.index].totalTime) // undefined
答案 0 :(得分:1)
这不是JSON。这是来自MongoDB的BSON的JavaScript表示,恰好使用了不必要的引用对象密钥。
您需要定义ISODate()
和ObjectId()
函数(可以从Mongo驱动程序或Mongoose中获取)并使用它们来解析对这些函数的调用。否则,您将收到错误,因为这些函数未定义。
并且你不能使用JSON.parse()
来解析它,因为这不是JSON。
访问时:
mainTitle[0].subTitles[req.body.index].subTitles[req.body.index].subTitles[req.body.index].totalTime
我会将其简化为:
var i = req.body.index;
mainTitle[0].subTitles[i].subTitles[i].subTitles[i].totalTime
但这只是为了提高可读性。
我会一次在一个嵌套级别进行测试:
var i = req.body.index;
console.log(i);
console.log(mainTitle);
console.log(mainTitle[0]);
console.log(mainTitle[0].subTitles);
console.log(mainTitle[0].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles);
console.log(mainTitle[0].subTitles[i].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles[i]);
console.log(mainTitle[0].subTitles[i].subTitles[i].subTitles[i].totalTime);
不漂亮,但有时这是缩小问题范围的最佳方式。
要访问深层结构,您可以使用: