#javascript #node.js
#javascript #node.js
Вопрос:
Я читаю csv-файл, если идентификатор совпадает, он обновит документы в моем mongodb.Но когда я печатаю обновленные документы, печатаются все.ниже приведен код.
const Account = require('./Account');
const parse = require('csv-parse');
const fastcsv = require("fast-csv");
const json2csv = require('json2csv').parse;
var csvWriter = require('csv-write-stream')
var newColumnValue = 'insertsuccessfully';
var writer = csvWriter()
let csvData = [];
var csvData1 = [];
const fs = require('fs');
var name = [];
fs.createReadStream(__dirname '/node_insert_2_1.csv').pipe(
parse({
delimiter:',',
from_line: 2
})
)
.on('data',function(dataRow) {
var customerid = dataRow[1];
Account.findOne({customerId: customerid}).then(
function(doc)
{
if(doc)
{
const updatedata =
{};
updatedata.InternalId=dataRow[0],
updatedata.firstname=dataRow[2],
updatedata.lastname =dataRow[3],
updatedata.email=dataRow[4],
updatedata.phone=dataRow[5],
updatedata.mobilePhone =dataRow[6],
updatedata.primary=dataRow[7]
const docid = doc._id;
Account.findByIdAndUpdate(docid,updatedata,{upsert:true}).then(
function(doc3)
{
console.log("Updated User : ", doc3);
}
);
console.log(docid)
}
Поскольку я печатаю console.log («Обновленный пользователь: «, doc3); все данные csv печатаются в формате json. Но мне нужны только обновленные данные для печати в моей консоли
Ответ №1:
Функция findByIdAndUpdate вернет весь документ, а не только обновления.
Если ошибки нет, можно с уверенностью предположить, что обновление прошло успешно, поэтому вы могли бы просто распечатать объект updatedata?