Mongoose private set fieldHow do I update/upsert a document in Mongoose?What is the “__v” field in MongooseNodeJs, Mocha and Mongoosenpm WARN package.json: No repository fieldcan't find _id attribute in the array of mongodbMongoose sort by populated fieldMongoDB/ Mongoose many to many relationship - user, project and roleEnforcing the default value in Mongoose schemaMongoose upsert without deleting existing fieldsHow to manually set createdAt timestamp in mongoDB using mongoose?
How do you manage to study and have a balance in your life at the same time?
Why is Mitch McConnell blocking nominees to the Federal Election Commission?
Why did the VIC-II and SID use 6 µm technology in the era of 3 µm and 1.5 µm?
Datasets of Large Molecules
How to solve this inequality , when there is a irrational power?
How to use a tikzpicture as a node shape
Why wasn't Linda Hamilton in T3?
From non-IT background to being a programmer
If the government illegally doesn't ask for article 50 extension, can parliament do it instead?
Why are direct proofs often considered better than indirect proofs?
If you can't target a creature without a clear path, does that mean Scrying fails unless you can already see the target?
Why are CEOs generally fired rather being demoted?
Can a human variant take proficiency in initiative?
How could reincarnation magic be limited to prevent overuse?
Received email from ISP saying one of my devices has malware
New coworker has strange workplace requirements - how should I deal with them?
Inserting command output into multiline string
garage light with two hots and one neutral
Can UV radiation be safe for the skin?
Why do fuses burn at a specific current?
Killing task by name - start menu shortcut
Divide Numbers by 0
Playing boules... IN SPACE!
D Scale Question
Mongoose private set field
How do I update/upsert a document in Mongoose?What is the “__v” field in MongooseNodeJs, Mocha and Mongoosenpm WARN package.json: No repository fieldcan't find _id attribute in the array of mongodbMongoose sort by populated fieldMongoDB/ Mongoose many to many relationship - user, project and roleEnforcing the default value in Mongoose schemaMongoose upsert without deleting existing fieldsHow to manually set createdAt timestamp in mongoDB using mongoose?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
Let's say I have this schema:
const UserSchema = new mongoose.Schema(
name:
type: String,
required: true
,
createdAt:
type: Date,
default: Date.now
);
mongoose.model('User', UserSchema);
I want to avoid someone to accidentally do this:
const izzy = User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" );
I want to make sure createdAt
is ignored, so if this is a new object being created (like my sample code) the default
value would be used, but if it was an update, createdAt
should be kept with its original value. So I'd like to somehow configure createdAt
not to be explicitly settable.
Is this possible?
node.js mongoose
add a comment |
Let's say I have this schema:
const UserSchema = new mongoose.Schema(
name:
type: String,
required: true
,
createdAt:
type: Date,
default: Date.now
);
mongoose.model('User', UserSchema);
I want to avoid someone to accidentally do this:
const izzy = User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" );
I want to make sure createdAt
is ignored, so if this is a new object being created (like my sample code) the default
value would be used, but if it was an update, createdAt
should be kept with its original value. So I'd like to somehow configure createdAt
not to be explicitly settable.
Is this possible?
node.js mongoose
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41
add a comment |
Let's say I have this schema:
const UserSchema = new mongoose.Schema(
name:
type: String,
required: true
,
createdAt:
type: Date,
default: Date.now
);
mongoose.model('User', UserSchema);
I want to avoid someone to accidentally do this:
const izzy = User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" );
I want to make sure createdAt
is ignored, so if this is a new object being created (like my sample code) the default
value would be used, but if it was an update, createdAt
should be kept with its original value. So I'd like to somehow configure createdAt
not to be explicitly settable.
Is this possible?
node.js mongoose
Let's say I have this schema:
const UserSchema = new mongoose.Schema(
name:
type: String,
required: true
,
createdAt:
type: Date,
default: Date.now
);
mongoose.model('User', UserSchema);
I want to avoid someone to accidentally do this:
const izzy = User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" );
I want to make sure createdAt
is ignored, so if this is a new object being created (like my sample code) the default
value would be used, but if it was an update, createdAt
should be kept with its original value. So I'd like to somehow configure createdAt
not to be explicitly settable.
Is this possible?
node.js mongoose
node.js mongoose
edited Mar 28 at 5:27
Alisson
asked Mar 28 at 1:22
AlissonAlisson
4,2492 gold badges24 silver badges48 bronze badges
4,2492 gold badges24 silver badges48 bronze badges
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41
add a comment |
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41
add a comment |
1 Answer
1
active
oldest
votes
Usually when you want to use default value, you don't pass createdAt value.But since you are saying "accidentally" you can override the value passes using.
User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" , (err,user)=>
if(err)
//handle
user.createdAt = Date.now;
user.save();
);
This is good, but only works when creating new objects. If it was an update,createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.
– Alisson
Mar 28 at 4:43
add a comment |
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%2f55388845%2fmongoose-private-set-field%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Usually when you want to use default value, you don't pass createdAt value.But since you are saying "accidentally" you can override the value passes using.
User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" , (err,user)=>
if(err)
//handle
user.createdAt = Date.now;
user.save();
);
This is good, but only works when creating new objects. If it was an update,createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.
– Alisson
Mar 28 at 4:43
add a comment |
Usually when you want to use default value, you don't pass createdAt value.But since you are saying "accidentally" you can override the value passes using.
User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" , (err,user)=>
if(err)
//handle
user.createdAt = Date.now;
user.save();
);
This is good, but only works when creating new objects. If it was an update,createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.
– Alisson
Mar 28 at 4:43
add a comment |
Usually when you want to use default value, you don't pass createdAt value.But since you are saying "accidentally" you can override the value passes using.
User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" , (err,user)=>
if(err)
//handle
user.createdAt = Date.now;
user.save();
);
Usually when you want to use default value, you don't pass createdAt value.But since you are saying "accidentally" you can override the value passes using.
User.create( name: 'Izzy', createdAt: "2000-01-28T01:04:30.809Z" , (err,user)=>
if(err)
//handle
user.createdAt = Date.now;
user.save();
);
answered Mar 28 at 4:30
Mahendra sutharMahendra suthar
2511 silver badge13 bronze badges
2511 silver badge13 bronze badges
This is good, but only works when creating new objects. If it was an update,createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.
– Alisson
Mar 28 at 4:43
add a comment |
This is good, but only works when creating new objects. If it was an update,createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.
– Alisson
Mar 28 at 4:43
This is good, but only works when creating new objects. If it was an update,
createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.– Alisson
Mar 28 at 4:43
This is good, but only works when creating new objects. If it was an update,
createdAt
should keep its original value and never be overriden. My fault for not explaining in my question, I'll edit it.– Alisson
Mar 28 at 4:43
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
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%2f55388845%2fmongoose-private-set-field%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
According to this issue, there is no built-in option to do it, but you can probably set an on-update pre hook to return the existing value of that field.
– TGrif
Mar 28 at 8:55
@TGrif I'll explore that solution, thanks for sharing it.
– Alisson
Mar 28 at 15:41