찾다

 >  Q&A  >  본문

数据库 - Mongodb多层嵌套数组如何精确查询?

{
    "excelID": "10001",
    "excelName": "一年级学生信息",
    "sheetArrays": [
        {
            "sheetName": "一班",
            "studentInfos": [
                {
                    "name": "张三",
                    "sex": "男"
                },
                {
                    "name": "李四",
                    "sex": "男"
                }
            ]
        },
        {
            "sheetName": "二班",
            "studentInfos": [
                {
                    "name": "王五",
                    "sex": "男"
                },
                {
                    "name": "赵六",
                    "sex": "女"
                }
            ]
        }
    ]
}

我希望通过一条语句查出所有sex为男的人员的名称;

我还希望能通过一条语句查出name为王五对应的班级和他的基本信息,求朋友们为我答疑解惑,感激不尽。

漂亮男人漂亮男人2757일 전995

모든 응답(1)나는 대답할 것이다

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-02 09:23:41

    Statement의 개념은 무엇인가요? aggregation진술로 간주되나요?

    으아아아

    할 수는 있지만 실제로 그러한 데이터 구조는 합리적이지 않습니다.
    MongoDB 모델 설계는 큰 주제입니다. 관심이 있다면 문서의 데이터 모델링 장을 주의 깊게 읽어보세요.
    기본 원칙은 사실 원칙이 없다는 것입니다. 이는 관계형 패러다임을 만족시키는 것보다 훨씬 더 귀찮은 일입니다. 하지만 기본적으로 선택하는 데이터 모델은 사용 방법, 업데이트 방법, 삽입 방법, 쿼리 방법 등 다양한 시나리오를 고려해야 합니다. 사용 시나리오를 잘 충족할 수 있는 모델이 좋은 모델입니다.
    모델로 돌아가서 문제가 무엇인지 확인하세요.

      <… 얼마나 나쁜지.
    1. 보시다시피 위 쿼리는 우아하지도 효율적이지도 않습니다. 업데이트는 말할 것도 없고, 생각만 해도 귀찮습니다.
    2. 그래서 이것은 좋은 모델이 아닙니다. MongoDB는 반패러다임을 옹호하지만 반패러다임을 위해 반패러다임까지 극단적으로 나아가지는 마십시오. 사용하기 더 편리한 다른 모델을 사용해 보십시오.


      회신하다
      0
  • 취소회신하다