3월, 2013의 게시물 표시

MongoDB 제한자

제한자? MongoDB에서 문서의 부분 갱신은 원자적 갱신 제한자(update modifier)를 사용해 매우 효율적으로 수행할 수 있다. 갱신 제한자는 키를 변경, 추가 또는 제거하고 배열과 내장 문서를 조작하는 복잡한 갱신 연산을 지정하는 데 사용되는 특수 키이다.
“$set”
키의 값을 설정한다. 키가 존재하지 않으면 생성, 스키마를 갱신하거나 사용자 정의 키를 추가할 때 사용. 심지어 키의 데이터형도 변경할 수 있다. 내장 문서 내부의 데이터를 변경할 때 쓸 수 있다. {"$set” : {“author.name” : “joe schmoe”}}
“$unset”
키와 값을 모두 제거할 수 있다.
“$inc”
이미 존재하는 키의 값을 변경하거나 새롭게 키를 생성하는데 사용 투표와 같이 자주 변하는 수치 값을 갱신하는 데 유용 "$set”과 비슷하지만 숫자를 증감을 목적으로 사용. 정수, long, double 형의 값에만 사용, 다른 데이터형에 사용할 수 없다.
“$push”
배열 제한자 지정된 키가 이미 존재하면 배열의 끝에 요소를 추가하고, 그렇지 않으면 새로운 배열을 생성해 추가한다.
“$nc”
배열 제한자 지정된 키가 존재하는지 확인
“$addToSet”
배열 제한자 "$nc”+”$push”와 같은 기능을 한다, 즉 중복을 피해서 배열에 추가할 때 사용.
"$each”
"$addToSet”과 함께 사용하여 여러 개의 값을 중복을 피해서 배열에 추가할 수 있게 된다.
“$pop”
배열을 스택이나 큐로 사용. {$pop : {key : 1}} → 배열의 끝부터 요소를 제거 {$pop : {key : -1}} → 배열의 처음부터 제거
“$pull”
배열에서 하나의 문서만 지우는 것이 아니고 일치하는 모든 문서를 제거한다.
제한자의 속도 "$inc”는 제잘에서 문서를 수정한다, 즉 문서의 크기를 변경할 필요가 없어 매우 효율적이다. 반대로 배열 제한자는 문서의 크기를 변경할 수도 있기 때문에 느릴 수도 있다.

Android에서 PhoneGap을 이용한 첨부파일 다운로드 및 열기

Android와 PhoneGap을 이용하여 Web상에 존재하는 첨부파일을 다운로드하고 이를 Phone에 설치된 App으로 여는 예제를 설명하도록 하겠습니다.
본 예제에서 사용된 PhoneGap 버전은 2.5 입니다.
아래와 같이 "첨부"에 링크를 걸게 됩니다.
<a href='javascript:getFileDownload("http://i3.kym-cdn.com/entries/icons/original/000/000/080/doubt.jpg”);''><img src='../images/ico_att.gif' style='vertical-align: top;'>첨부</a>
function getFileDownload() { fileDownload(remoteFile, onCallback); }
function onCallback(entry) {  → 파일다운로드가 완료되면 호출되는 CallBack Method cordova.exec( function(result) { }, function(error) { console.log("Error: "+e); }, "UrikidsPlugIn", "showFile", [entry.fullPath]); }


PhoneGap의 FileTransper.Download API을 이용한 ‘getFileDownload' JavaScript은 아래와 같습니다.

var localFilePath = "Hurukku/"; ... function fileDownload(remoteFile, callback) {    var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(file…