MongoDB

몽고디비를 셀렉트에 연결하는 방법

MongoDB와 연결하기

셀렉트는 MongoDB 데이터베이스 연결을 지원합니다.

리소스 > 추가

  1. 관리자 > 리소스 > 추가 버튼을 눌러주세요. 리소스 추가 화면을 확인하실 수 있습니다.
  2. MongoDB를 선택하세요.
1320

연결 정보 입력

  1. Name 필드는 셀렉트 안에서 리소스를 불러올 때 사용하는 이름입니다.
  2. 몽고 DB의 URL을 입력하거나 Host, Username, Password, Database 필드를 입력하여 연결할 수 있습니다.
1326

MongoDB 쿼리

MongoDB, 셀렉트 YAML 용법 비교

# MongoDB Schema Statements
# db.properties.find({name: {$regex: "..."}}, {status: "..."}).sort({user_id: 1})

# 셀렉트 YAML
query:
  collection: properties 
  find:
    name: 
      $regex: "{{name}}"
    status: "{{status}}"
  sort:
    user_id: 1

참고자료: SQL to MongoDB mapping
https://www.mongodb.com/docs/manual/reference/sql-comparison/

지원 메소드 methods

셀렉트는 아래의 MongoDB methods를 지원합니다.

  • find
  • findOne
  • count
  • distinct
  • aggregate
  • insertOne
  • insertMany
  • updateOne
  • updateMany
  • deleteOne
  • deleteMany

추가 지원이 필요한 메소드가 있다면 [email protected]로 문의해주세요.

주요 메소드 YAML 예시

find 예시

1264
- path: mongodb/find
  blocks:
  - type: query 
    name: find 
    resource: mongodb.sample
    sqlType: select 
    query:
      collection: properties 
      find:
        name: 
          $regex: "{{name}}"
    params:
      - key: name 
        label: find regex name 
    paginationOptions:
      enabled: true 
      perPage: 3

find 팁

  • 정렬 sort
  • 개수 제한 limit
- path: mongodb/find
  blocks:
  - type: query 
    name: find 
    resource: mongodb.sample
    sqlType: select 
    query:
      collection: properties 
      find:
        name: 
          $regex: "{{name}}"
      sort:
        name: 1 # ASC 
        # name: -1 # DESC   
      limit: 100
    params:
      - key: name 
        label: find regex name 
    paginationOptions:
      enabled: true 
      perPage: 3
  • 개수 세기 count
- path: mongodb/count
  blocks: 
  - type: query 
    name: count
    resource: mongodb.sample
    sqlType: select 
    query:
      collection: properties 
      find:
      count: _id 
      # count: 1 # _id 둘다 가능

insertOne 예시

1262
- path: mongodb/insertone
  blocks:
  - type: query 
    name: insertOne 
    resource: mongodb.sample
    sqlType: insert 
    query:
      collection: properties 
      insertOne:
        name: "{{name}}"
        status: "{{status}}"
    params:
      - key: name
      - key: status 
        dropdown:
          - open
          - close 
    reloadAfterSubmit: true

updateOne 예시

1272
- path: mongodb/updateone
  blocks:
  - type: query 
    name: updateOne
    resource: mongodb.sample
    sqlType: select 
    query:
      collection: properties 
      find:
    paginationOptions:
      enabled: true 
      perPage: 3
    columns:
      name:
        label: 이름 
        updateOptions:
          resource: mongodb.sample 
          type: query
          query:
            collection: properties
            updateOne:
              -
                _id: 
                  $oid: "{{_id}}"
              -
                $set:
                  name: "{{value}}"

updateMany 예시

1270
- path: mongodb/updatemany
  blocks: 
  - type: query 
    name: updateMany 
    resource: mongodb.sample
    sqlType: update         
    query:
      collection: properties 
      updateMany:
        - status: open 
        - $set: 
            status: "{{status}}"
    params:
      - key: status
        dropdown: 
          - open 
          - close
    reloadAfterSubmit: true