2013-05-19 11 views
1

저는 SQL 데이터베이스가없는 데이터베이스 쿼리에 익숙하며 빠른 질문이 있습니다.node.js (express-coffeescript-mongodb)의 MongoDB 쿼리

기본적으로 'publishedImage'가 'true'로 설정된 모든 필드의 '이름'을 검색하고 싶습니다. 결과를 배열에 저장하고 while 루프와 같은 것을 사용하여 정렬되지 않은 목록의 이름을 뷰 폴더의 .jade 템플릿 파일에 인쇄하고 싶습니다.

어떤 쿼리를 수행해야합니까? 나는 이것이 php와 mysql과 어떻게 관련이 있는지를 알고 있지만, 노드 튜토리얼을 본 후에는 시작했을 때 더 혼란 스럽다.

나는 이것에 대한 도움을 얻을 수 있다면 정말 고마워!

고마워요,

조엘.

답변

3

당신이 물어 보는 몇 가지가 있습니다.

어떻게 mongodb를 사용하여 쿼리합니까?

mongoDB의 쿼리는 SQL 쿼리와 많이 다르지 않습니다. mongoDB 문서에는 쿼리가 시스템에서 실행되는 방법에 대한 일부 good examples이 있습니다. 이 페이지를 아래로 스크롤하면, mysql에서했던 것과 다른 점이 없다는 것을 알 수 있습니다.

각 mongo 모듈에는 쿼리를 구성하고 실행하기위한 구문이 다릅니다. 그러나 궁극적으로, 그들은 모두 내가 링크 된 mongo 문서에 나와있는 것처럼 쿼리를 실행해야합니다. mongodb 구문을 모듈 별 구문과 비교하면이 점을 알 수 있습니다.

당신은 모듈을 통해 통화를 볼 수 있습니다 예를 들어, 우리는 뭔가를 찾아 하려면 (반드시) mongodb 쿼리와 유사합니다. 사실, mongoose는 "conditions"라는 쿼리를 호출하지만, mongoose 문서를 읽으면 조건 구문이 기본적으로 mongoDB 구문과 동일하다는 것을 알 수 있습니다.

어떻게 결과를 저장합니까?

이것은 더 복잡한 질문입니다. node-mongodb와 mongoose 모두 ​​find 함수는 반환 된 쿼리 결과를 나열하고 반환 값을 처리 할 수있는 몇 가지 옵션을 제공합니다. 실제로 node-mongodb 예제는 .toArray 호출을 .find 쿼리와 voila에 연결하는 방법을 명시 적으로 보여줍니다! 쿼리 결과 배열로 작업하고 있습니다. Mongoose는 콜백을 사용하여 모델이 사용하는 스키마를 사용하여 결과가 포맷 된 결과와 함께 오류 및 결과를 처리 할 수 ​​있도록합니다. (몽구스 스키마와 모델은 몽구스 모듈을 사용하기로 결정한 경우 여기에서 문서와 검색을 통해 자세히 탐색해야하는 또 다른 주제입니다.)

배열을 반복하는 방법은 무엇입니까?

이것은 실제로 mongoDB 질문이 아니지만 자바 스크립트 질문입니다. 나에 유래 여기에 두 가지 답변에 당신을 지적하자

  1. Loop through an array in javascript
  2. Loop through javascript object

또한, 당신은 underscorejs 도서관에서 볼 수도 있습니다 그것은 underscore 노드 모듈을 동반합니다. 밑줄 기호의 eachmap 함수는 이와 같은 상황에서 편리합니다.

0

나는 또한 mysql 데이터베이스에서 왔습니다. 나는 node.js에서 mongoDB를 관리하기 위해 실제로 mongoDB를 사용하고 있으며이 문서를 읽는 것만으로도 배울 수 있습니다. http://mongoosejs.com/docs/index.html

찾기 기능은 원하는 기능입니다. 이런 식으로 :

MyStuff.find({ publishedImage: true }, function(error,result){ 
    if(!error){ 
    // Do stuff with result 
    } 
}); 

"결과"는 원하는 모든 문서가있는 배열이됩니다.

몽구스에는 다양한 옵션이 있지만 링크의 의사와 함께 시작할 기본 사항을 배울 수 있습니다. 호프가 도움이되기를 바랍니다.

+0

대단히 감사합니다! 오늘 밤 이것 좀 봐! – Joel