Я получаю поток/r/n завершенных данных, которые я хочу вставить в базу данных mongodb.Мой код mongodb не вставляет все данные
tag~4~keyword~sim
tag~5~keyword~mib
tag~4~keyword~gom
tag~3~keyword~qbo
tag~6~keyword~qqq
tag~3~keyword~k94
tag~4~keyword~g93
Я отделил их помощью arr.split (~), так что я получу представление в виде массива, где первая строка была бы представлена следующим образом:
arr[0] refers to tag
arr[1] refers to 4
arr[2] refers to keyword
arr[3] refers to sim
Я хотел бы, чтобы вставить их в MongoDB с этим представлением:
{
tag: 4,
keywords: [{ keyword: "sim" }, { keyword: "gom" }, { keyword: "g93"} ]
}
суть моего nodejs/клиента Монго (родной) код с помощью асинхронной выглядит следующим образом:
i. проверьте коллекцию ('dat') на наличие тега.
ii. если тега не существует, создайте документ и вставьте номер тега
iii. затем вставьте ключевое словоObj.
var newTagNumber = parseInt(arr[1])
var keywordObj = { keyword: arr[3] }
async.waterfall([
function(callback) {
db.collection('dat')
.find({ tag: newTagNumber },
{ forceServerObjectId: true}).toArray((err, result) => {
db.collection('dat').createIndex({ tag: 1 }, { unique: true })
if (err) return callback(err)
if (!result.length) return callback(null, false)
})
},
function(arg1, callback) {
if (!arg1) {
db.collection('dat')
.insertOne({ tag: newTagNumber },
{ forceServerObjectId: true }, (err, result2) => {
if (err) return callback(err)
})
} // end if
// insert keyword object into the correct tag
db.collection('dat')
.updateOne({ tag: newTagNumber },
{ $push : { keywords: keywordObj }},
{ forceServerObjectId: true }, (err, result3) => {
if (err) return callback(err)
})
}],
function(err) {
if (err) {
if (err.message) {
return console.log(err.message)
}
return console.log(err)
}
})
Использование тега 4 в качестве примера, у меня должно быть 3 ключевых слова для ввода ключевых слов в массив ключевых слов. Тем не менее, я получаю только два.
Я не уверен, где я ошибся. Может быть, это связано с обратными вызовами?
я думаю, что это проблема у меня есть - http://stackoverflow.com/questions/17637274/mongodb-doesnt-save-all-data – extensa5620