다른 사이트에 대해 동일한 사용자 이름을 가질 수 있기 때문에 중복 사용자 이름을 허용하려면 mongo가 필요합니다.이 코드는 다음과 같습니다.
_(data)
.forEach(function (a, key) {
jobs['insert_' + a] = function (callback) {
mongo.open(config.MONGO_DB)
.collection('usernames')
.insert({
username: a,
indic: key,
favorites: ''
}, function (err, result) {
if (err) {
return next(err);
}
callback();
});
};
}
.commit();
async.parallel(jobs, send_response);
결과적으로이 한 줄만 얻습니다.
{ "_id" : ObjectId("5592724901c01a6ca6b76a6a"), "username" : "asd", "indic" : "twitch", "favorites" : "" }
내가 전달하는 데이터는 다음과 같습니다.
data = {twitch: 'asd', hitbox: 'asd', dailymotion: 'asd'}
이런 걸 먹어야하지 않나요?
`{ "_id" : ObjectId("5592724901c01a6ca6b76axx"), "username" : "asd", "indic" : "twitch", "favorites" : "" }
{ "_id" : ObjectId("5592724901c01a6ca6b76axx"), "username" : "asd", "hitbox" : "twitch", "favorites" : "" }
{ "_id" : ObjectId("5592724901c01a6ca6b76axx"), "username" : "asd", "dailymotion" : "twitch", "favorites" : "" }
나는 이것을 내 async
기능 으로 사용하고 있습니다.
귀하의 a
변수는 중복되는 변수이므로 동일한 키를 jobs
(즉 insert_asd
)에 계속 추가합니다 .
결과에서 특정 삽입 작업을 참조 할 필요가없는 경우 jobs
객체 대신 배열을 만들 수 있습니다 .
var jobs = _(data).map(function(a, key) {
return function(callback) {
....
};
}).value();
그러나 MongoDB 드라이버를 사용하여 문서를 별도로 추가하는 대신 한 번에 추가 할 수 있습니다. 공식 MongoDB 드라이버는 insertMany()
예를 들어를 사용하는 문서 배열을 지원 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다