MongoDB performance, borderline of client-side & server-side, performance tips
I came across these questions when I am designing the collections for my project.
I read it from somewhere before saying that better do most of the calculation at the client side. the reason because MongoDB computation will slow down the response. But I don't really understand where is the borderline of client-side or server-side.
Question
- I am writing APIs, so are the js files that are used to response the JSON is counted as client-side or server-side?
- The ionic app typescript side is counted as client-side right?
- The js file that use to write APIs, where will they be stored when production? at the server in MongoDB?
Which is better in performance?
- Use query e.g '$gt' or '$lt' to get the filtered data from MongoDB and send the response back to the client.
- Get the unfiltered list and filter them e.g using lodash, and send the response back to the client.
node.js mongodb ionic-framework database-design
add a comment |
I came across these questions when I am designing the collections for my project.
I read it from somewhere before saying that better do most of the calculation at the client side. the reason because MongoDB computation will slow down the response. But I don't really understand where is the borderline of client-side or server-side.
Question
- I am writing APIs, so are the js files that are used to response the JSON is counted as client-side or server-side?
- The ionic app typescript side is counted as client-side right?
- The js file that use to write APIs, where will they be stored when production? at the server in MongoDB?
Which is better in performance?
- Use query e.g '$gt' or '$lt' to get the filtered data from MongoDB and send the response back to the client.
- Get the unfiltered list and filter them e.g using lodash, and send the response back to the client.
node.js mongodb ionic-framework database-design
1
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" bylodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.
– Neil Lunn
Nov 20 '18 at 4:49
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16
add a comment |
I came across these questions when I am designing the collections for my project.
I read it from somewhere before saying that better do most of the calculation at the client side. the reason because MongoDB computation will slow down the response. But I don't really understand where is the borderline of client-side or server-side.
Question
- I am writing APIs, so are the js files that are used to response the JSON is counted as client-side or server-side?
- The ionic app typescript side is counted as client-side right?
- The js file that use to write APIs, where will they be stored when production? at the server in MongoDB?
Which is better in performance?
- Use query e.g '$gt' or '$lt' to get the filtered data from MongoDB and send the response back to the client.
- Get the unfiltered list and filter them e.g using lodash, and send the response back to the client.
node.js mongodb ionic-framework database-design
I came across these questions when I am designing the collections for my project.
I read it from somewhere before saying that better do most of the calculation at the client side. the reason because MongoDB computation will slow down the response. But I don't really understand where is the borderline of client-side or server-side.
Question
- I am writing APIs, so are the js files that are used to response the JSON is counted as client-side or server-side?
- The ionic app typescript side is counted as client-side right?
- The js file that use to write APIs, where will they be stored when production? at the server in MongoDB?
Which is better in performance?
- Use query e.g '$gt' or '$lt' to get the filtered data from MongoDB and send the response back to the client.
- Get the unfiltered list and filter them e.g using lodash, and send the response back to the client.
node.js mongodb ionic-framework database-design
node.js mongodb ionic-framework database-design
asked Nov 20 '18 at 4:38
Thomas KimThomas Kim
6317
6317
1
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" bylodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.
– Neil Lunn
Nov 20 '18 at 4:49
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16
add a comment |
1
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" bylodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.
– Neil Lunn
Nov 20 '18 at 4:49
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16
1
1
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" by
lodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.– Neil Lunn
Nov 20 '18 at 4:49
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" by
lodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.– Neil Lunn
Nov 20 '18 at 4:49
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53386332%2fmongodb-performance-borderline-of-client-side-server-side-performance-tips%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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53386332%2fmongodb-performance-borderline-of-client-side-server-side-performance-tips%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
Which is better performance is not really the question here. The real indicator is that if you actually think you need to ask the question and could possibly fit your collection result in memory to be "filtered" by
lodash
or similar, then you are basically wasting time using a database of any kind in the first place. This is not what database engines are used for. Your primary reason for usage is that such results could not possibly be worked in memory, because that is what a database does well.– Neil Lunn
Nov 20 '18 at 4:49
Thanks for replying, so you are suggesting to get all the filtered result in the query right?
– Thomas Kim
Nov 20 '18 at 5:16