2012-05-31 3 views
-1

또는 ... "나에게 복잡한"어쩌면 더 정확합니다. 어떤 경우 복잡한 몽고 인서트

, 나는 mongod 오픈 몽고와 몽고 터미널에서 나는 다음과 같은 명령에 넣어 가지고 :

db.err_details.insert({"error_text" : "Log has found error on inbound", "co 
de" : "WM2001_0", "product" : "WM2001", "profile : ["CR" : "11999002", "sol 
s" : ["run", "to", "the", "hills"]], "otherinfo" : "Contact Bob Saget"}); 

err_details은, 중요한 것은 그것을하지 존재 않습니다. 어쨌든 나는 enter 키를 누르면 "..."을 두 번 입력하고 삽입하지 않고 종료합니다. 이전에는 쿼리에 구문 오류가있을 때이 작업을 수행했지만 아직 오류가 어디서 무엇인지, 잘못된 것인지 알려주지 않습니다. 골리, 이번에는 찾을 수 없습니다.

의도가 명확하지 않은 경우 "프로필"에 키 - 값 쌍의 배열이 있어야하며 그 중 하나 ("sols")에는 키 - 값 쌍이 아닌 ITS OWN 배열의 값만 있습니다.

db.err_details.insert({"error_text" : "Log has found error on inbound", "errco 
de" : "WM2001_0", "product" : "WM2001", "profile" : {"CR" : "11999002", "sols" : 
["run", "to", "the", "hills"]}, "otherinfo" : "Contact Bob Saget"}); 

이 유효 몽고하지만 I 오브젝트의 배열보다 배열을 갖는 요소를 포함하는 객체를 원한다 사실 "프로필"에 비추어

난 다음 시도 목적이다.

+0

마지막 예는 괜찮아 보입니다. 정확히 작동하지 않는 것은 무엇입니까? –

+0

마지막 예는 좋은 것입니다 ... CR 다음에 빠진 "빼기"입니다. 그건 정확히 개념적으로 제가 찾던 것이 아닙니다. – PinkElephantsOnParade

답변

4

구문 오류가 있습니다. "프로필"속성에 대한 귀하의 가치는 개체 인 것처럼 보이지만 배열의 []을 사용합니다. 그리고 프로필 주위에 따옴표 중 하나가 누락되었습니다.

(힌트 : Mongo 콘솔에서 사용하는 JS 점검 서비스에 명령을 복사/붙여 넣기하십시오. 즉석 오류 강조 표시가있는 편집기는 예외적으로 잘 수행됩니다).

나는 확실히 당신의 DB의 구조를 이해하지 않지만, "K/V 페어의 배열은"그 라인을 따라 뭔가를해야한다 :

db.err_details.insert({ 
    "error_text" : "Log has found error on inbound", 
    "code" : "WM2001_0", 
    "product" : "WM2001", 
    "profile" : [ 
     {"CR" : "11999002"}, 
     {"sols" : ["run", "to", "the", "hills"]} 
    ], 
    "otherinfo" : "Contact Bob Saget" 
}); 

즉 - 객체에 싸서 모든 쌍.

+0

실제로, 나는 "프로파일"이 " 프로필 "'뿐만 아니라 .... – pms1969

+0

좋은 캐치. 그것도 추가했습니다. –

+0

정확히 사용하고 싶습니다. 다시 한 번 감사드립니다! – PinkElephantsOnParade

1

BSON/JSON/JavaScript의 배열 []은 키를 입력 할 수 없으므로 객체 {}을 사용해야합니다. Profile 속성에는 키가 있지만 배열로 입력됩니다.

+0

아니, "솔"은 괜찮아. "프로필"만이 나쁜 것입니다. –

+0

oops mb 잘못 읽었습니다. – JaredMcAteer