2017-03-28 8 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]thing.com", "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 } ] } 

お知らせ方法の扱い「項目」オブジェクトとしてアレイ全体、各項目

{ "_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 } 

:配列である項目「項目」のキーに、私は、データは次のようになりたいです配列は、それぞれ独自のObjectIDを持つmongoの "item"として作成されます。そうでなければ、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

これはあなたのmongoコレクションの "item"としてObjectIDで完成し、そのオブジェクトはあなたのコレクションになる "items":[]配列を持ちます – iamwhitebox

+0

あなたは親オブジェクトの配列を持っています。各親には一連の項目があります。コレクションにすべてのアイテムを含めるには? – daviscodesbugs

+0

あなたの質問の明快さと、私が提供した解決策は、その結果を達成します。出力を参照してください:http://i.imgur.com/xS5Jmpm.png – daviscodesbugs

関連する問題