js组合对象只返回一个id
js combining objects only returns an id
我在mongoose中进行了几次查找,然后当我试图组合数据时,它只显示id,而不是整个对象。但是,如果我console.log()
对象,它将显示所有内容。
以下是我在猫鼬中的两个发现:
Project.find({ title: data.title }, function (err, projectObject) {
if (err || !projectObject) cb(err, null);
var project = new Object();
for(var key in projectObject)
if (undefined !== projectObject[key])
project[key] = projectObject[key];
Attachment.find({ projects: [ project._id ] }, function (err, attachments) {
if (err) cb(err, null);
if (attachments)
for (var i in attachments)
project.attachments.push(attachments[i]);
Location.find({ projects: [ project._id ] }, function (err, locations) {
if (err) cb(err, null);
if (locations)
for (var i in locations)
project.location.push(locations[i]);
});
});
});
如果我现在进行console.log(project)
,它将显示:
{
'_id': 'ad5ffeb5a5a5fa763a64f3',
'title': 'Tested project',
'body': 'This is the content for the project.',
__v: 0,
'date_created': 'Wed Jan 07 2015 10:34:06 GMT-0600 (CST)',
'location':[
'ad5ffeb5a5a5fa763a64f4'
],
'moderator':[
'b041516116c16a1c5fb'
]
}
现在,如果我做console.log(project.location)
,这就是(从同一个对象)显示的内容:
[
{
'_id': 'ad5ffeb5a5a5fa763a64f4',
'name': 'home',
'city': 'Columbia',
'state': 'MO',
'postcode': '65203',
'country': 'US',
'timezone': 'CST',
'__v': 0,
'geo':{
'type':'Point',
'coordinates':[
-92.339894,
38.962357
]
}
}
]
这就是我感到困惑的地方,因为对象在那里,但它只显示id,而不是整个对象。
我想知道我是不是做错了什么,或者有更好的方法吗?
Mongoose模型实例文档经过定制,通常将其可访问的内容约束到其模式中定义的内容。因此,如果您想自由地操作它们的内容,请在查询中调用lean()
,以便它们返回纯JavaScript对象。
Project.find({ title: data.title }).lean().exec(function (err, projectObject) { ...
但在这种情况下,最好利用Mongoose的population
支持,它可以为您提供ObjectID引用。
相关文章:
- 向更新mysql查询传递一个id
- Javascript:表单验证getElementById仅返回第一个id元素
- JS在隐藏未定义的值后仅从数组中返回第一个id的值
- Meteor:访问另一个集合,每个块中有一个id
- js组合对象只返回一个id
- 给每个谷歌距离矩阵结果一个id
- 如何附加一个id's的详细信息只通过php或jquery提供一次
- Ember eror试图注册一个id已在使用的视图
- 如何使用innerHTML更改图像大小来给它一个id Javascript
- 具有一个#id的多选选项可显示n个隐藏表
- 设置一个按钮按下函数来触发一个Id为的Ajax调用
- 如何创建一个每行列数未知的html表,对齐列,并为每个单元格/行指定一个id
- jQuery鼠标滚动到下一个id
- 如何在 JavaScript 中获取另一个 ID 下的 ID
- Javascript 保存相同的 ID,而不会在 LocalStorage 中覆盖另一个 ID
- 如何在 html 中调用另一个 ID 中的特定 ID
- 将事件绑定到类中的所有元素,而不仅仅是一个 id
- 使用 JSP 为
-Elements 提供一个 ID - JS只使用一个id,忽略另一个id
- 找到一个按钮并通过jQuery / JavaScript分配一个ID