-
Notifications
You must be signed in to change notification settings - Fork 13
Collection Read
흔히 NOSql 에서 데이터베이스에 하나의 다큐멘트의 개념인 JSON 포맷은 baas.io 에서는 엔티티로 사용되면 SDK에도 엔티티라는 개념을 그대로 사용하고 있다.
자 그럼 앞서 생성한 "mycollection" 콜랙션에 어떤 엔티티들이 담겨 있는지 요청해보자.
콜렉션 명이 "mycollections" 복수형임을 유의하자.
var myFirstApp = new Baas.IO({
orgName: 'YOUR_BAAS_IO_ID', // baas.io ID
appName: 'YOUR_BAAS_APP_ID', // baas.io Application ID
logging: false,
buildCurl: false
});
var options = {
type: "mycollections"
};
myFirstApp.createCollection(options, function(err, items) {
if(err) {
//실패
} else {
//성공
var item;
while(items.hasNextEntity()) {
item = items.getNextEntity();
alert(item.get('name'));
}
}
});
아마 위의 코드로 "mycollections" 의 콜렉션을 요청했다면 결과에 아무런 값도 없을 것이다.
myFirstApp.createCollection(options, function(err, items) {
console.log(items._list.length); // 0
});
자 그럼 콜랙션에 엔티티를 생성해보자.
먼저, 생성할 데이터를 정의해보자.
var options = {
type: "mycollections",
name: "benz",
year: 1967
}
데이터는 type
이라는 값에 컬랙션 명을 지정하고 나머지는 key
:value
형태로 나열해주면 된다. 복잡한 JSON 포맷이라고 하여도 상관없지만 여기서는 설명을 위해서 name
과 year
를 갖는 엔티티를 생성할 예정이다.
다음의 코드를 보자.
앞서 소개한 컬랙션에 포함된 엔티티를 가져오는 단계에서 createCollection
메소드와 유사하다.
//엔티티 생성
myFirstApp.createEntity(options, function (err, items) {
if (err){
//에러
alert('실패');
} else {
//성공
alert('성공');
}
});
위의 코드를 실행했다면 애플리케이션 대쉬보드 > 데이터브라우저
에서 새롭게 생성된 엔티티를 확인할 수 있을 것이다.
물론 컬랙션에 엔티티 목록 가져오기 에소 소개한 소스를 다시 실행해 보면 업데이트된 내용도 확인할 수 있을 것이다.
콜랙션은 일반적으로 많은 엔티티를 포함하고 있다. 다음은 컬랙션에 포함된 엔티티에 접근하는 가장 기본적인 예제 코드이다.
myFirstApp.createCollection(options, function (err, items) {
if (err){
//에러
alert('실패');
} else {
//성공
while(items.hasNextEntity()) {
var car = items.getNextEntity();
var name = car.get('name');
notice('이 자동차는 "'+ name +'" 이라고 부른다.');
}
}
});
코드에서도 알 수 있듯이 createCollection
의 콜백 함수에 전달된 items
인자에는 엔티티 정보를 담고 있다. 또한 기본적으로 SDK에서 서버의 응답을 랩핑한 컬랙션 모델으로 몇 가지 유용한 메소드들을 함께 제공한다.
위의 코드에 items.hasNextEntity
메소드는 엔티티 유무를 체크하는 메소드이다. while 문을 통해 모든 엔티티를 반복해서 접근할 수 있다.
좀 더 자세한 SDK 사용법은 자세히 다룰 예정이지만 먼저 참고하고 싶다면 API Reference 를 참고 바란다.