1.I'm trying to create a create a unique document with date as a id. 2.But when I try to insert new objects in datedata array it creates duplicate entry even I had use addtoset. 3.Mine getbankNiftydata function runs every 20 sec and every time it creates duplicate entry in my datedata array.
import mongoose from "mongoose";
import fetch from "node-fetch";
import * as dotenv from "dotenv";
dotenv.config();
mongoose.connect(process.env.CONNECTION_URL);
const DateSchema = mongoose.Schema({
time: {
type: String,
required: true,
unique: true,
},
data: {
type: Array,
required: true,
},
});
const bankNiftySchema = mongoose.Schema({
_id: {
type: String,
required: true,
},
datedata: [
{
type: DateSchema,
required: true,
unique: true,
},
],
});
const bankNiftyoption = mongoose.model("test bank", bankNiftySchema);
export async function getbankNiftyData() {
const res = await fetch("http://localhost:5000/api/banknifty");
const response = await res.json();
const data = response.filtered?.data;
const date = response?.records?.timestamp.split(" ");
try {
const result = await bankNiftyoption({
_id: date[0],
});
await result.save();
} catch (error) {
console.log(error);
}
try {
await bankNiftyoption.findOneAndUpdate(
{ _id: date[0] },
{
$addToSet: {
datedata: { time: response?.records?.timestamp, data: [] },
},
}
);
} catch (error) {**strong text**
console.log(error);
}
}