'find'에 해당되는 글 1건
- 2015.11.17 :: mongodb crud(2)
개발관련/MongoDB
2015. 11. 17. 11:12
1 2 | db.crudtest.find(); | cs |
특정 collections의 데이터를 전체 가져올때 find()함수로 호출한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | db.crudtest.find( { $and: [{ "name":"hwang" },{ "id":"wargen" }] } ); db.crudtest.find( { $or: [{ "id":"wargen" },{ "idx":2 }] } ) | cs |
and, or 검색은 위와 같이 $and, $or 의 명령어로 array 를 선언후 object 형태로 찾고자 하는 field를 선언한다.
특정 배열의 값을 찾고자 할때는 다음과 같이 선언한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | db.crudtest.find( { "language.0": "java" } ); db.crudtest.find( { "language" : { $all : ["js","java"] } } ) | cs |
$all의 경우 array의 값이 있는 것들을 전체 다 찾아준다.
다음은 mongodb의 꽃(?)이라 할수있는 변수 저장 이다.
1 2 3 4 5 6 7 8 9 10 11 12 | var temp = db.crudtest.find( { "type": { $ne : null } }, { "type":1 } ); temp; | cs |
이때 다시한번 temp; 를 하면 값이 나오지 않을 것이다. 이를 커서라 한다. 커서에 저장된 값 리턴될 값을 저장하는것이 아니고 실행될 쿼리를 저장한다. 그러므로 변수를 호출하면 쿼리가 호출되므로 커서의 값은 사라진다.
위의 예제의 값을 저장하고 싶다면 다음과 같이 생성해야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | var returnVal = function (){ while(temp.hasNext()){ var currentData = temp.next(); for(var key in currentData.type){ print(key); } } }; returnVal(); | cs |
js랑 똑같다. =_=;
mongodb도 <, >, <=, >= 이런것들을 지원을 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | db.crudtest.find( { "idx" : { $lt : 2 } } ); db.crudtest.find( { "idx" : { $lte : 2 } } ); db.crudtest.find( { "idx" : { $gte : 2 } } ); db.crudtest.find( { "idx" : { $gt : 2 } } ); | cs |
이상 find는 끝....