我想在mongodb集合中存储数组中的唯一值(文档/行)。为此,我要获取整个字段,并使用嵌套的for循环将数组的每个值与获取的字段的每个值进行比较。但是我的代码有很多问题。我在下面列出,
1.unique值未存储在数据库中。
if condition
内的 2.code每次都会执行,并在显示console()
时最多显示一次console.log("found")
,最多显示920次。但是最大数组的长度是300。我无法获取该错误。这段代码在map系列内部,我附上图像以供参考。请帮助
dbo.collection("Unique_data").find({}, {projection: {_id: 0, App_Id: 1}}).toArray(function (err, res) {
if (err) {
throw err;
console.log(err);
} else {
var new_app_obj;
var current_appID;
var found = 0;
for (var i = 1; i <= resulted_ids.length; i++)
{
// console.log(current_appID);
current_appID = resulted_ids[i - 1];
for (var j = 1; j <= (res.length) && (found = 1); j++)
{
// console.log(current_appID);
// console.log(res[j - 1].App_Id);
if (current_appID === (res[j - 1].App_Id))
{
found = 1;
console.log("found");
}
}
if (found === 0)
{
new_app_obj = {App_Id: current_appID, Status: 0,
Insertion_Date: currentDate, Rating_Status: "unknown",
Checked_for_Updates: "0"};
dbo.collection("Unique_data").insertOne(new_app_obj, function (err, res) {
if (err) {
throw err;
} else {
// console.log("I row inserted");
}
//db.close();
}); //we can add multiple collection code here
console.log("I row inserted");
}//
}
}
db.close();
});
输出1
输出2
完整代码。 1
2