2017-09-13 4 views
0

Je suis nouveau à mongo et ai fait beaucoup de lecture et une preuve de concept. Il existe de nombreuses discussions sur plusieurs collections ou documents incorporés. N'y a-t-il pas un autre choix? Ignorer mon esprit relationnelDB ... Ne pourriez-vous pas mettre deux schémas différents dans la même collection?MongoDB schémas multiples dans une collection

exemple brut:

{ 
    _id: 'f48a2dea-e6ec-490d-862a-bd1791e76d9e', 
    _owner: '7a147aad-e3fd-4e55-9fd5-e2cb48d31a83' 
    manufacturer: 'Porsche', 
    model: '911', 
    img: '<byte array>' 
},{ 
    _id: '821ca9b7-faa1-4516-a27e-aec79fcb89a9', 
    _owner: '46ade116-cd59-4d0c-a4d3-cd2e517a256c', 
    manufacturer: 'Nissan', 
    model: 'GT-R', 
    img: '<byte array>' 
},{ 
    _id: '87999e27-c98b-4cad-b444-75626f161840' 
    _owner: 'fba765c8-32dd-49ba-91d3-d361b40bf4a7', 
    manufacturer: 'BMW', 
    model: 'M3', 
    wiki:'http://en.wikipedia.org/wiki/Bmw_m3', 
    img: '<byte array>' 
} 

et un schéma tout à fait de différence dans la même collection et

{ 
    _id: '7a147aad-e3fd-4e55-9fd5-e2cb48d31a83', 
    name: 'Keeley Bosco', 
    email: '[email protected], 
    city": 'Lake Gladysberg', 
    mac: '08:fd:0b:cd:77:f7', 
    timestamp: '2015-04-25 13:57:36 +0700', 
},{ 
    _id: '46ade116-cd59-4d0c-a4d3-cd2e517a256c', 
    name: 'Rubye Jerde', 
    email: '[email protected]', 
    city: null, 
    mac: '90:4d:fa:42:63:a2', 
    timestamp: '2015-04-25 09:02:04 +0700', 
},{ 
    _id: 'fba765c8-32dd-49ba-91d3-d361b40bf4a7', 
    name: 'Miss Darian Breitenberg', 
    email: null, 
    city: null, 
    mac: 'f9:0e:d3:40:cb:e9', 
    timestamp: '2015-04-25 13:16:03 +0700', 
} 

(La raison pour laquelle je ne l'utilise pas un document intégré (dans mon vrai POC) est qu'une personne peut avoir 80000 "voitures" et dépasser la limite de 16 Mo).

Outre le désir douloureux de compartimenter les données, y a-t-il une chute?

Le raisonnement pour ce faire peut être afin que nous puissions corréler les enregistrements ... Je vois que 3.2 a joint. Le projet est trop nouveau pour connaître toutes les analyses de rentabilisation.

Répondre

0

Bien que Mongodb prenne en charge différents schémas au sein d'une même collection. Cependant, en tant que bonne pratique, mieux vaut s'en tenir à un schéma ou un schéma similaire à travers la collection, de sorte que votre logique d'application sera plus simple.

Dans votre cas, oui, il est bon que vous n'utilisiez pas un document incorporé compte tenu de la taille du sous-document. Cependant, je proposerais d'opter pour un modèle de données normalisé qui n'est pas vraiment mauvais dans ce genre de situation.

En outre, vous pouvez vous référer ici: https://docs.mongodb.com/master/core/data-model-design/