2013-02-18 5 views
-1

MongoDB의 메신저가 매우 새에 대한 수집 및 쿼리를 작성하는 방법과 내가 .. 숍에 대한 해결책을 찾는 최선의 방법 구축 :MongoDB를이 - 바로 숍

컬렉션 :

  • 는 CD 같은 많은 항목 유형을 필요로를, DVD, 책 ... 저자와
  • 프로모션 패키지가 필요 = 항목이 많은 항목이 있습니다 (CD, DVD, 책을 ..)

쿼리

는 가능하면 언제 또한 doctrine2의 ODM에 대해 생각 사용 삽입 및 참조 .. 메신저

를 판별 기

메신저 확실하지 않은 저자, 항목 유형 -

  • 필터링을 필요로 이러한 항목 카탈로그 필요 덕분에

    !

답변

1

컬렉션 :

  • 제품 :이 같은 필드가 포함 유형, 저자 (즉, 등 이름을 가진 다른 객체의)
  • promotionalPackages : 그것은 이름, 할인 등의 분야를 포함, 등
  • 또한 제품

컬렉션 'promotional_package'이라는 필드가 포함 contai NS _id promotionalPackages

쿼리의 객체 :

  • 는 저자에 의해 필터링 → db.products({ 'author.name': 'authorName' })
  • 유형별로 필터링하는 → db.products({ type:'DVD' })
  • 당신이이 쿼리를 만들 필요가 프로모션 아이템을 얻을 수 있습니다 : 하나는 프로모션 패키지 db.promotionalPackages.find({name:'my_promotional_package'})의 _id를 가져오고 다른 하나는 속한 모든 제품을 가져옵니다. db.products.find({ promotional_package: promotional_package._id })

주의 사항 : dbref를 사용하지 않고 프로모션 패키지 사이의 참조를 만들 필요가 없습니다.

일반적으로 사용자가 액세스하는 모든 개체/문서 (제품 및 작성자)와 별도로 액세스 할 수있는 개체를 별도로 두십시오. 사용 사례, 쿼리 및 스키마를 모델링하여 단일 쿼리에서 http 응답에 필요한 모든 개체를 가져옵니다.

의심의 여지?