2017-11-19 5 views
0

Ich habe das folgende Array von Objekten. Gegenwärtig hat es ein Objekt, das mehrere darin enthält.Array innerhalb des Objekts | Datenbankeinfügung

let arr = 
    [ 
    { 
     "data": { 
      "Score": { 
       "score": [ 
        "87", 
        "21" 
       ], 
       "Player": [ 
        "Wiki", 
        "Tim" 
       ] 
      }, 
      "Designation": { 
       "By": [ 
        "0", 
        "0", 
        "1", 
        "0", 
        "0" 
       ], 
       "Position": [ 
        "31/07/17", 
        "31/07/17", 
        "31/07/17", 
        "31/07/17", 
        "31/07/17" 
       ] 
      }, 
      "Address": { 
       "Location": "London", 
       "House_No": "43-B", 
      } 
     } 
    } 
] 

Die obigen Daten werden in einer Tabelle angezeigt.

Ich habe versucht, es zu loopen und einzufügen, aber habe keinen Ausweg. Die oben genannten Daten sind nicht konstant Mittel werden sich ändern wie Position haben 5 Elemente, Es kann 6 nächstes Mal sein, also kann ich es nicht einfach über seine Indizes einfügen.

Ich habe Dinge versucht, aber keinen Erfolg.

+0

SQL-Tabellen können nicht speichern Daten ähnlich. Erfahren Sie mehr über Fremdschlüssel. – SLaks

+1

Abhängig vom Datenbanktyp und der Datenbankstruktur. Nicht genug bekannt – charlietfl

+0

@Slaks Ich benutze Parse Server, es ist auf Mongo. – Jimmy

Antwort

0

Mysql kann JSON-Daten speichern, und Sie können nach dem Abrufen parsen, auch wenn Sie JSON-Daten von MySQL-Abfragen analysieren können, aber das ist wenig komplex, wenn Daten sich ändern, also besser speichern, abholen und analysieren. Sie können den Feild-Typ JSON auswählen und json darin speichern.

CREATE TABLE `book` (
    `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 
    `title` varchar(200) NOT NULL, 
    `tags` json DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB; 

Sie json Daten in sie unter Verwendung PHP-Funktion einfügen können: -: mehrere

INSERT INTO `book` (`title`, `tags`) 
VALUES (
    'ECMAScript 2015: A SitePoint Anthology', 
    '$json_data' 
); 

für die Manipulation von JSON-Daten über MySQL-Abfragen gibt es

-

$json_data = json_encode($json_data); 

Einfügen-Befehl wird Funktion wie JSON_ARRAY(), JSON_OBJECT() und so weiter, die Sie bevorzugen können. Bitte lesen Sie unten Artikel für Details: - https://www.sitepoint.com/use-json-data-fields-mysql-databases/

+0

Aber OP sagte, dass sie Mongo auf Parse-Server verwenden – charlietfl

+0

@ Charlietfl ist richtig, ich benutze Mongo DB. Und ich muss den JSON nicht speichern. Bitte schlagen Sie eine Lösung vor. – Jimmy

+0

@Jimmy aber Mongo ist zum Speichern von JSON. Ich denke, dass Sie einige Tutorials zur Strukturierung von Mongo oder NoSql Datenbanken im Allgemeinen studieren müssen. Es ist bereits sehr offensichtlich, dass Sie nicht verstehen, wie sie arbeiten – charlietfl

-1

In ES6 können Sie einfach alle Schlüssel bekommen und Wert eines Objekts wie folgt aus:
Object.keys(myObj).forEach(key => { console.log(key); // the name of the current key. console.log(myObj[key]); // the value of the current key. });

Wenn es ein Array für jede Anwendung die alle bekommen Werte
arr.forEach(function(element) { console.log(element); });

arr.push(element) wird verwendet, um das Element als letzten Index des Arrays zu schieben.

0

In MongoDB, wenn Sie dynamische Daten, die Sie wie unter Mischtyp-Schema verwenden: -

details:Schema.Types.Mixed, 

Beispielschema: -

// grab the things we need 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var mongoosePaginate = require('mongoose-paginate'); 
// create a schema 
var casesSchema = new Schema({ 
    sku: {type:String, unique:true}, 
    details:Schema.Types.Mixed, 
    created_at: {type:Date, default: Date.now}, 
    images: Schema.Types.Mixed, 
    ebay_hosted_images: Schema.Types.Mixed, 
    cloudinary_hosted_images: Schema.Types.Mixed, 
    dropbox_hosted_images: Schema.Types.Mixed, 
    is_listed:Boolean, 
    user_id : {type: String, ref:'User'} 
}); 
casesSchema.plugin(mongoosePaginate); 
var cases = mongoose.model('cases', casesSchema); 

module.exports = cases; 
Verwandte Themen