gpt4 book ai didi

javascript - 在一系列 MongoDB 插入中,我想引用先前插入的项目的 objectId

转载 作者:行者123 更新时间:2023-11-30 21:15:39 25 4
gpt4 key购买 nike

我想将一系列文档插入到 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com