2017-03-28 5 views
0

mongoimport를 사용하여 json 데이터 배열로 데이터베이스를 시드하려고 시도하지만 데이터가 mongo 컬렉션에 도달하면이 컬렉션 개체의 키로 가져옵니다 [! [[1]] 여기에 이미지 설명을 입력]Mongoimport 가져 오기 json 배열을 컬렉션의 키가 아닌 컬렉션으로 가져 오기

[1]

"항목"내 JSON 파일, 그것은 항상 "항목"으로 표시됩니다, 나는 상위 배열이 배열되고 싶어 나는 수입하려고 노력하고있다.

업데이트

이 예제를 참조하십시오, 첫 번째 이미지가 mongoimport 개체의 배열을 가져 오는 방법은 다음과 같습니다

{ "_id" : ObjectId("58dc01ecec116d4c9039e47c"), "items" : [ { "id" : 1, "_id" : "item1", "type" : "alert", "title" : "hello.world", "email" : "[email protected]", "message" : "", "createdDate" : "date", "price" : "$9.00", "active" : true }, { "id" : 2, "_id" : "item2", "type" : "welcome.lol", "title" : "Item 2", "email" : "[email protected]", "message" : "lol", "createdDate" : "date", "price" : "$12.00", "active" : true }, { "id" : 3, "_id" : "item3", "type" : "message", "title" : "various.domain", "email" : "[email protected]", "message" : "lol", "createdDate" : "date", "price" : "$3.00", "active" : false }, { "id" : 4, "_id" : "item4", "type" : "message", "title" : "something.else", "message" : "", "createdDate" : "date", "price" : "$12.00", "active" : false }, { "id" : 5, "_id" : "item5", "type" : "update", "title" : "wow.lol", "email" : "[email protected]", "message" : "", "createdDate" : "date", "price" : "$12.00", "active" : false }, { "id" : 6, "_id" : "item6", "type" : "update", "title" : "domainname.net", "email" : "[email protected]", "message" : "cars", "createdDate" : "date", "price" : "$12.00", "active" : false }, { "id" : 7, "_id" : "item7", "type" : "update", "title" : "something.lol", "email" : "[email protected]", "message" : "", "createdDate" : "date", "price" : "$12.00", "active" : false } ] } 

공지 방법의 취급에 "항목을"개체로 전체 배열, 배열의 항목 "items"에 키가 있으면이 데이터를 다음과 같이 표시합니다.

{ "_id" : ObjectId("58dc027a2c74df002a957281"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:42.227Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027b2c74df002a957282"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:43.574Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027b2c74df002a957283"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:43.708Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027b2c74df002a957284"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:43.855Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027b2c74df002a957285"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:43.994Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027c2c74df002a957286"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:44.128Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027c2c74df002a957287"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:44.263Z"), "active" : true, "__v" : 0 } 
{ "_id" : ObjectId("58dc027c2c74df002a957288"), "price" : "asdf", "message" : "asdf", "email" : "aasfd", "title" : "asdf", "dateCreated" : ISODate("2017-03-29T18:52:44.391Z"), "active" : true, "__v" : 0 } 

여기서 각 항목은 배열은 mongo의 "항목"으로 만들어지며 각각은 자체 ObjectID를가집니다. 그렇지 않으면 CRUD 응용 프로그램에 쓸모가 없습니다.

도커 MongoDB를 로그 :

mongodb_1  | 2017-03-29T21:38:09.439+0000 I COMMAND [conn1] command reach-engine.domains command: insert { insert: "domains", documents: [ { items: [ { id: 1, _id: "item1", type: "alert", title: "hello.world", email: "[email protected]", message: "", createdDate: "date", price: "$9.00", active: true }, { id: 2, _id: "item2", type: "welcome.lol", title: "Item 2", email: "[email protected]", message: "lol", createdDate: "date", price: "$12.00", active: true }, { id: 3, _id: "item3", type: "message", title: "various.domain", email: "[email protected]", message: "lol", createdDate: "date", price: "$3.00", active: false }, { id: 4, _id: "item4", type: "message", title: "something.else", message: "", createdDate: "date", price: "$12.00", active: false }, { id: 5, _id: "item5", type: "update", title: "wow.lol", email: "[email protected]", message: "", createdDate: "date", price: "$12.00", active: false }, { id: 6, _id: "item6", type: "update", title: "domainname.net", email: "[email protected]", message: "cars", createdDate: "date", price: "$12.00", active: false }, { id: 7, _id: "item7", type: "update", title: "something.lol", email: "[email protected]", message: "", createdDate: "date", price: "$12.00", active: false } ] } ], writeConcern: { getLastError: 1, w: 1 }, ordered: false } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } } } protocol:op_query 250ms 
+0

안녕하세요 iamwhitebox; mongoimport 명령과 출력의 스크린 샷을 포함하는 대신 결과를 텍스트로 텍스트로 붙여 넣을 수 있습니까? 질문을 쉽게 색인화하고, 기록하고, 이해할 수 있기 때문에 [텍스트 권장] (https://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-errors). –

+0

감사합니다. 업데이트되었습니다. – iamwhitebox

답변

3

당신이 가져 오는 데 사용하는 명령을 알고하는 것이 유용 할 것입니다,하지만 난 그냥이 명령을 사용하여 데이터베이스를 가져온 다음 JSON 생성 :

mongoimport --db test --collection example --type json --file example.json --jsonArray

당신이 --jsonArray 플래그


을 사용하고 있는지 확인

example.json

[ 
    { 
     "color": "red", 
     "value": "#f00" 
    }, 
    { 
     "color": "green", 
     "value": "#0f0" 
    }, 
    { 
     "color": "blue", 
     "value": "#00f" 
    }, 
    { 
     "color": "cyan", 
     "value": "#0ff" 
    }, 
    { 
     "color": "magenta", 
     "value": "#f0f" 
    }, 
    { 
     "color": "yellow", 
     "value": "#ff0" 
    }, 
    { 
     "color": "black", 
     "value": "#000" 
    } 
] 
+0

이것은 몽고 컬렉션에서 ObjectID로 완성 된 "아이템"으로 나타나고 그 객체는 "아이템"을 가질 것입니다 : [] 배열에 콜렉션이 될 것입니다 – iamwhitebox

+0

그래서 부모 객체의 배열을 가지고 있습니다. 각 부모는 일련의 항목을 가지고 있습니다. 컬렉션에 모든 항목이 포함되기를 원하십니까? – daviscodesbugs

+0

질문의 명확성과 함께 내가 제공 한 해결책은 여전히 ​​그 결과를 성취합니다. 출력을보십시오 : http://i.imgur.com/xS5Jmpm.png – daviscodesbugs