我的硬盘上有一个.json文件,大约有70个条目。
这是我使用的模型:
var tweetModel = mongoose.model('tweet', {
"correct":Boolean,
"text": String,
"id":{type:String, unique:true},
"user":{
"atNamn":String,
"namn":String,
"bild":String,
"id":String
}
});
有些推文是重复的,因此共享相同的" id"属性。我想在添加时过滤掉这些内容。目前我只是通过这样的JSON。
var JSONData = require("../public/data/jsondata")
for(key in JSONData){
new tweetModel(JSONData[key]).save(function(err,doc){
if(err){console.log(err)}
else{
console.log(doc);
}
})
}
如果我一次运行,他们都会被添加。如果我再次这样做,则会引发重复错误。我希望它在添加之前检查重复项!
答案 0 :(得分:1)
使用简单的JS对象来跟踪您已经看过的id
个值:
var seenIds = {};
for(key in JSONData){
var json = JSONData[key];
if (!seenIds[json.id]) {
seenIds[json.id] = true;
new tweetModel(json).save(function(err,doc){
if(err){console.log(err)}
else{
console.log(doc);
}
});
}
}