我在Blaze使用Meteor框架。我如何从API获取数据并只在MongoDB集合中插入新数据而不重复?如何更新没有重复的MongoDB
从API获取数据。
if (Meteor.isServer) { Meteor.methods({ fetchApiData: function() { this.unblock(); return Meteor.http.call('GET','http://jsonplaceholder.typicode.com/posts');},
将数据插入数据库:
populateDatabaseApi: function() { Meteor.call('fetchApiData', function(error, result) { myCollection.insert({ //upsert: true, A: result.data.title, B: result.data.userId, C: result.data.id }); }); },
当使用 “myCollection.update” 与 “UPSERT:真正的” 它并不明显插入新的条目。什么是最好的做法来检查API的数据和只插入新的条目没有重复和更新现有的条目?
谢谢。
如果你需要保证唯一性,你应该在数据库中放置适当的唯一索引,如果没有它们,你在流星中做的任何事情都可能失败。 – Paul
为什么不用[Collection.upsert()](https://docs.meteor.com/api/collections.html#Mongo-Collection-upsert)这个简单的方法来做到这一点? –