2016-06-18 4 views
4

monogDB를 처음 사용하고 싶습니다. 원하는 데이터를 저장할 수 있도록 데이터를 저장하는 방식을 설계하려고합니다. 내가 배열 "foo는"이 항상 길이가 3이고, 항목의 순서는 의미가 어디 mongoDB의 고정 길이 배열을 주문했습니다.

{ 
    "foo":["foo1","foo2","foo3"], 
    "bar":"baz" 
} 

과 같은 문서를 말해봐. "foo2"== 뭔가있는 모든 문서를 검색하는 쿼리를 만들 수 있기를 원합니다. 본질적으로 나는 어떤 오래된 배열처럼 "foo"를 다루기를 원하고 검색에서 그것을 색인 할 수 있어야한다. 그래서 "foo"[1] == something과 같은 것이다.

monogDB가 이것을 지원합니까?

{ 
    "foo":{ 
     "foo1":"val1", 
     "foo2":"val2", 
     "foo3":"val3" 
    }, 
    "bar":"baz" 
} 

대신 내 데이터를 저장하는 것이 더 정확합니까? 감사.

+0

"* foo2"== 무언가 * 무엇을 의미합니까? 또는'foo [2] == something'을 의미합니다. – styvane

+0

"foo2"는 배열 "foo"의 두 번째 위치이므로 "foo2"는 foo [1]과 같을 것이라는 속기를 사용했습니다. – jms

답변

2

질문하신 스키마가 정상입니다.

특정 배열 인덱스에 삽입하려면 $position 연산자를 사용하십시오. here을 읽으십시오.

특정 인덱스 위치에서 쿼리하려면 : key.index 구문을 사용하십시오. 있는 그대로 :

db.users.find({"foo.1":"foo2"}) 
+0

더 나은 @ user3100115? – world

+0

내 질문에 답변 해 주셔서 감사합니다. – jms

관련 문제