54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
// n8n MongoDB插入节点代码
|
||
const items = $input.all();
|
||
const results = [];
|
||
|
||
for (const item of items) {
|
||
const data = item.json;
|
||
|
||
try {
|
||
// 使用upsert操作,避免重复插入
|
||
const result = await mongoClient.db('taigong').collection('articles').updateOne(
|
||
{
|
||
$or: [
|
||
{ article_id: data.article_id },
|
||
{ title: data.title }
|
||
]
|
||
},
|
||
{
|
||
$setOnInsert: {
|
||
article_id: data.article_id,
|
||
title: data.title,
|
||
content: data.content,
|
||
content_hash: data.content_hash,
|
||
published_time: data.published_time,
|
||
source_url: data.source_url,
|
||
processed: data.processed,
|
||
created_at: data.created_at
|
||
},
|
||
$set: {
|
||
last_updated: new Date().toISOString()
|
||
}
|
||
},
|
||
{ upsert: true }
|
||
);
|
||
|
||
if (result.upsertedCount > 0) {
|
||
console.log('新增文章:', data.title);
|
||
results.push({
|
||
json: {
|
||
action: 'inserted',
|
||
article_id: data.article_id,
|
||
title: data.title
|
||
}
|
||
});
|
||
} else {
|
||
console.log('文章已存在,跳过:', data.title);
|
||
}
|
||
|
||
} catch (error) {
|
||
console.error('插入文章失败:', data.title, error);
|
||
}
|
||
}
|
||
|
||
console.log(`成功处理 ${results.length} 篇新文章`);
|
||
return results; |