作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将一系列文档插入到 MongoDB 中,其中每个文档都必须引用先前插入的条目。想想多米诺骨牌,下一个掉落的元素会意识到它被撞倒的元素。
比如说,我将三个多米诺骨牌插入到数据库中,我想获得以下结果(_id 由 MongoDB 在插入时生成)。
{ _id: '1', parentId: null },
{ _id: '2', parentId: '1' },
{ _id: '3', parentId: '2' },
我尝试了以下方法:
let parentId = null;
dominos.map(domino => {
domino.parentId = parentId;
return storeItem(domino) // calls Model.create and returns _id
.then((result) => {
parentId = result; // a console.log would print the latest _id
})
.catch(error => error);
})
问题是 .then 子句中收到的 parentId 没有向上传播,所以 domino.parentId = parentId
即使在插入第二个和第三个项目后仍然为空。
我确信在范围或 promise 方面我漏掉了一些小东西。任何有关如何让它发挥作用的建议,或者可能是另一种更可行的方法,我们都将不胜感激。
问候-行动
最佳答案
安装异步依赖
npm install --save async
试试这个
const async = require('async')
let parentId = null
async.each(dominos,
function(domino, callback) {
domino.parentId = parentId;
storeItem(domino)
.then((result) => {
parentId = result
callback()
})
}, function (err) {
console.log('success')
})
关于javascript - 在一系列 MongoDB 插入中,我想引用先前插入的项目的 objectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716383/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!