How to model a document in mongoDB- flat vs nested The Next CEO of Stack OverflowUpdating a Nested Array with MongoDBFind in Double Nested Array MongoDBHow does database indexing work?MongoDB or CouchDB - fit for production?MongoDB vs. CassandraHow to query MongoDB with “like”?What are the options for storing hierarchical data in a relational database?How do I pass command line arguments to a Node.js program?How to decide when to use Node.js?How to exit in Node.jsHow do I drop a MongoDB database from the command line?How do you rename a MongoDB database?

0 rank tensor vs 1D vector

"misplaced omit" error when >centering columns

How do I align (1) and (2)?

Why did CATV standarize in 75 ohms and everyone else in 50?

Is a distribution that is normal, but highly skewed considered Gaussian?

How to edit “Name” property in GCI output?

What connection does MS Office have to Netscape Navigator?

Legal workarounds for testamentary trust perceived as unfair

Make solar eclipses exceedingly rare, but still have new moons

Is French Guiana a (hard) EU border?

Are police here, aren't itthey?

Where do students learn to solve polynomial equations these days?

Does increasing your ability score affect your main stat?

Easy to read palindrome checker

I believe this to be a fraud - hired, then asked to cash check and send cash as Bitcoin

Can a Bladesinger Wizard use Bladesong with a Hand Crossbow?

A Man With a Stainless Steel Endoskeleton (like The Terminator) Fighting Cloaked Aliens Only He Can See

A small doubt about the dominated convergence theorem

Why, when going from special to general relativity, do we just replace partial derivatives with covariant derivatives?

Is micro rebar a better way to reinforce concrete than rebar?

What flight has the highest ratio of time difference to flight time?

Why isn't the Mueller report being released completely and unredacted?

TikZ: How to reverse arrow direction without switching start/end point?

Proper way to express "He disappeared them"



How to model a document in mongoDB- flat vs nested



The Next CEO of Stack OverflowUpdating a Nested Array with MongoDBFind in Double Nested Array MongoDBHow does database indexing work?MongoDB or CouchDB - fit for production?MongoDB vs. CassandraHow to query MongoDB with “like”?What are the options for storing hierarchical data in a relational database?How do I pass command line arguments to a Node.js program?How to decide when to use Node.js?How to exit in Node.jsHow do I drop a MongoDB database from the command line?How do you rename a MongoDB database?










1















Hi and thanks for helping.
I need to insert data to a MongoDB collection and I confused, which approached is better, nested or flat way.



For example:
one nested document



{ 
a: [
aName: 'name',
b: [
bName: 'name'
]



or many flat and small documents




a: 'name',
b: 'name'



Comments:



  • there isn't update query, just insert (and get)


  • the nested object is not huge (not overflow the limit)


my thinks for the nested way:



  • it's more verbose, its help to the next person that looking on the collection to understand the hierarchy


  • the get is simpler, and the code for get is more readable


my thinks for the flat way:



  • maybe in the future should do more aggregeation on the collection, it will be easier.









share|improve this question






















  • The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

    – Mike Tung
    Mar 7 at 16:29











  • I know my case as I wrote, in general, but I think there is a best practice and what not to do.

    – shkediy
    Mar 7 at 17:22






  • 1





    There are always exceptions, best practice is a guideline not a mandate

    – Mike Tung
    Mar 7 at 19:22











  • The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

    – Neil Lunn
    Mar 8 at 0:12















1















Hi and thanks for helping.
I need to insert data to a MongoDB collection and I confused, which approached is better, nested or flat way.



For example:
one nested document



{ 
a: [
aName: 'name',
b: [
bName: 'name'
]



or many flat and small documents




a: 'name',
b: 'name'



Comments:



  • there isn't update query, just insert (and get)


  • the nested object is not huge (not overflow the limit)


my thinks for the nested way:



  • it's more verbose, its help to the next person that looking on the collection to understand the hierarchy


  • the get is simpler, and the code for get is more readable


my thinks for the flat way:



  • maybe in the future should do more aggregeation on the collection, it will be easier.









share|improve this question






















  • The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

    – Mike Tung
    Mar 7 at 16:29











  • I know my case as I wrote, in general, but I think there is a best practice and what not to do.

    – shkediy
    Mar 7 at 17:22






  • 1





    There are always exceptions, best practice is a guideline not a mandate

    – Mike Tung
    Mar 7 at 19:22











  • The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

    – Neil Lunn
    Mar 8 at 0:12













1












1








1








Hi and thanks for helping.
I need to insert data to a MongoDB collection and I confused, which approached is better, nested or flat way.



For example:
one nested document



{ 
a: [
aName: 'name',
b: [
bName: 'name'
]



or many flat and small documents




a: 'name',
b: 'name'



Comments:



  • there isn't update query, just insert (and get)


  • the nested object is not huge (not overflow the limit)


my thinks for the nested way:



  • it's more verbose, its help to the next person that looking on the collection to understand the hierarchy


  • the get is simpler, and the code for get is more readable


my thinks for the flat way:



  • maybe in the future should do more aggregeation on the collection, it will be easier.









share|improve this question














Hi and thanks for helping.
I need to insert data to a MongoDB collection and I confused, which approached is better, nested or flat way.



For example:
one nested document



{ 
a: [
aName: 'name',
b: [
bName: 'name'
]



or many flat and small documents




a: 'name',
b: 'name'



Comments:



  • there isn't update query, just insert (and get)


  • the nested object is not huge (not overflow the limit)


my thinks for the nested way:



  • it's more verbose, its help to the next person that looking on the collection to understand the hierarchy


  • the get is simpler, and the code for get is more readable


my thinks for the flat way:



  • maybe in the future should do more aggregeation on the collection, it will be easier.






node.js database mongodb






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 7 at 16:28









shkediyshkediy

114




114












  • The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

    – Mike Tung
    Mar 7 at 16:29











  • I know my case as I wrote, in general, but I think there is a best practice and what not to do.

    – shkediy
    Mar 7 at 17:22






  • 1





    There are always exceptions, best practice is a guideline not a mandate

    – Mike Tung
    Mar 7 at 19:22











  • The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

    – Neil Lunn
    Mar 8 at 0:12

















  • The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

    – Mike Tung
    Mar 7 at 16:29











  • I know my case as I wrote, in general, but I think there is a best practice and what not to do.

    – shkediy
    Mar 7 at 17:22






  • 1





    There are always exceptions, best practice is a guideline not a mandate

    – Mike Tung
    Mar 7 at 19:22











  • The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

    – Neil Lunn
    Mar 8 at 0:12
















The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

– Mike Tung
Mar 7 at 16:29





The approach really depends on your application's use case. As this is too subjective I suggest you come back with more concrete problem.

– Mike Tung
Mar 7 at 16:29













I know my case as I wrote, in general, but I think there is a best practice and what not to do.

– shkediy
Mar 7 at 17:22





I know my case as I wrote, in general, but I think there is a best practice and what not to do.

– shkediy
Mar 7 at 17:22




1




1





There are always exceptions, best practice is a guideline not a mandate

– Mike Tung
Mar 7 at 19:22





There are always exceptions, best practice is a guideline not a mandate

– Mike Tung
Mar 7 at 19:22













The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

– Neil Lunn
Mar 8 at 0:12





The question really is to general and "best practice" is really about "how you need to use the data". You can see Updating a Nested Array with MongoDB for more information of difficulties and general structural advice. Also Find in Double Nested Array MongoDB demonstrates difficulties in the query side. Most importantly there are "shades" here as you probably don't really mean "flat", but you also don't want "deeply nested".

– Neil Lunn
Mar 8 at 0:12












0






active

oldest

votes












Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55048577%2fhow-to-model-a-document-in-mongodb-flat-vs-nested%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55048577%2fhow-to-model-a-document-in-mongodb-flat-vs-nested%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved