将多个文档中的字段保存到对象
saving fields from multiple documents to an object
我在我的项目中使用Mongoose for MongoDB操作。我正在尝试:
- 查找每个文档匹配查询
- 创建一个新对象(我们称之为
objects
) - 对于找到的每个文档,请在
objects
内创建一个新对象 - 将找到的文档中的字段保存到创建的对象
这工作得很好。但我也想:
- 对于保存在我
objects
中的每个对象,在另一个集合中找到一个文档匹配查询 - 如果找到文档,则将其中的字段保存到以前创建的对象
objects
(作为新键)
我的第二部分代码如下所示:
for(var i in objects) {
if(objects.hasOwnProperty(i)) {
Model.findOne({name: objects[i].name, id: objects[i].id}, function(e, document) {
if(e) console.error(e);
if(document) {
console.log("Found matchind document"); //This is showed for each object, as expected.
objects[i].newField = document.someData;
objects[i].evenNewerField = document.someMoreData;
}
});
}
}
console.log(objects); //This shows old data from previous operations, no new data from the for loop
你的问题不在于你的猫鼬用法,你应该深入研究Javascript范围和异步。在调用 console.log 的代码中,对象尚未更新。
相关文章:
- 保存尝试保存字段/列,但不保存值
- 保存输入字段Chrome扩展名
- 使用javascript或jquery保存输入字段值
- 使用带有链接的javascript,使用Struts2保存页面字段值
- Javascript,PHP,保存字段值
- 保存到视图中的多个隐藏字段
- 将多个文档中的字段保存到对象
- 如何在 select2() 字段中保存排序顺序
- 将画布另存为 jpeg 格式,并通过 js 将输入字段保存到数据库
- 从动态生成的输入字段中获取下拉列表中的数据,而无需保存值 - jquery
- SuiteCRM内联编辑的字段未保存
- 如何在JEditable/JQuery中保存事件后字段的更新值
- CRM 2011,保存后,字段将恢复为不可见
- 从保存在节点 mongodb 本机中的 beeing 中排除字段
- 在MongoDB中保存虚线字段
- Javascript 新对象字段未保存
- 如何在任何索引字段中验证 ng-repeat 中的保存按钮
- 无法获取光滑网格将数据保存到隐藏字段
- 当用户关闭浏览器时是否可以保存所有字段信息
- 控制器侧的输入字段保存方式不同(angularjs)