How to use upsert params with feathershjs
I have a config's model as below:
module.exports = function (app) {
const mongooseClient = app.get('mongooseClient');
const { Schema } = mongooseClient;
const config = new Schema({
year: { type: Number, required: true },
group: { type: Array, required: true },
title: { type: String, required: true },
format: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
}, { collection: 'config' });
return mongooseClient.model('config', config);
};
in my js file I have service name "config". I try use patch method with upsert:true but it's not working.
var data = { year: 2018, group: , title: "", format:"" }
var params = { query: { year: 2018 }, mongoose: { upsert: true } }
app.service('config').patch(null, data, params).then(function(result){
console.log(result);
});
In my collection not exists any document with the 2017 year field so as you can see above should be created a new document but I receive all the time empty array: . What is wrong?
node.js mongoose feathersjs
add a comment |
I have a config's model as below:
module.exports = function (app) {
const mongooseClient = app.get('mongooseClient');
const { Schema } = mongooseClient;
const config = new Schema({
year: { type: Number, required: true },
group: { type: Array, required: true },
title: { type: String, required: true },
format: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
}, { collection: 'config' });
return mongooseClient.model('config', config);
};
in my js file I have service name "config". I try use patch method with upsert:true but it's not working.
var data = { year: 2018, group: , title: "", format:"" }
var params = { query: { year: 2018 }, mongoose: { upsert: true } }
app.service('config').patch(null, data, params).then(function(result){
console.log(result);
});
In my collection not exists any document with the 2017 year field so as you can see above should be created a new document but I receive all the time empty array: . What is wrong?
node.js mongoose feathersjs
add a comment |
I have a config's model as below:
module.exports = function (app) {
const mongooseClient = app.get('mongooseClient');
const { Schema } = mongooseClient;
const config = new Schema({
year: { type: Number, required: true },
group: { type: Array, required: true },
title: { type: String, required: true },
format: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
}, { collection: 'config' });
return mongooseClient.model('config', config);
};
in my js file I have service name "config". I try use patch method with upsert:true but it's not working.
var data = { year: 2018, group: , title: "", format:"" }
var params = { query: { year: 2018 }, mongoose: { upsert: true } }
app.service('config').patch(null, data, params).then(function(result){
console.log(result);
});
In my collection not exists any document with the 2017 year field so as you can see above should be created a new document but I receive all the time empty array: . What is wrong?
node.js mongoose feathersjs
I have a config's model as below:
module.exports = function (app) {
const mongooseClient = app.get('mongooseClient');
const { Schema } = mongooseClient;
const config = new Schema({
year: { type: Number, required: true },
group: { type: Array, required: true },
title: { type: String, required: true },
format: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
}, { collection: 'config' });
return mongooseClient.model('config', config);
};
in my js file I have service name "config". I try use patch method with upsert:true but it's not working.
var data = { year: 2018, group: , title: "", format:"" }
var params = { query: { year: 2018 }, mongoose: { upsert: true } }
app.service('config').patch(null, data, params).then(function(result){
console.log(result);
});
In my collection not exists any document with the 2017 year field so as you can see above should be created a new document but I receive all the time empty array: . What is wrong?
node.js mongoose feathersjs
node.js mongoose feathersjs
edited Nov 12 '18 at 1:53
Cœur
17.4k9103144
17.4k9103144
asked Nov 12 '18 at 0:49
SeaDog
136214
136214
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Everything looks good. The only reason I can think of for this not to work is that the service is called from client
. The only part of params
that will be passed to the server is the query
. You can see it here.
So my suggestion is that add that to your query? maybe do something like;
var params = { query: { year: 2018, $mongoose: { upsert: true } }
Then in your hooks you can check if $mongoose
exists and add it to the params and do not forget to delete it in your query.
You can also make use of paramsForServer
&& paramsFromClient
.
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%2f53254729%2fhow-to-use-upsert-params-with-feathershjs%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
Everything looks good. The only reason I can think of for this not to work is that the service is called from client
. The only part of params
that will be passed to the server is the query
. You can see it here.
So my suggestion is that add that to your query? maybe do something like;
var params = { query: { year: 2018, $mongoose: { upsert: true } }
Then in your hooks you can check if $mongoose
exists and add it to the params and do not forget to delete it in your query.
You can also make use of paramsForServer
&& paramsFromClient
.
add a comment |
Everything looks good. The only reason I can think of for this not to work is that the service is called from client
. The only part of params
that will be passed to the server is the query
. You can see it here.
So my suggestion is that add that to your query? maybe do something like;
var params = { query: { year: 2018, $mongoose: { upsert: true } }
Then in your hooks you can check if $mongoose
exists and add it to the params and do not forget to delete it in your query.
You can also make use of paramsForServer
&& paramsFromClient
.
add a comment |
Everything looks good. The only reason I can think of for this not to work is that the service is called from client
. The only part of params
that will be passed to the server is the query
. You can see it here.
So my suggestion is that add that to your query? maybe do something like;
var params = { query: { year: 2018, $mongoose: { upsert: true } }
Then in your hooks you can check if $mongoose
exists and add it to the params and do not forget to delete it in your query.
You can also make use of paramsForServer
&& paramsFromClient
.
Everything looks good. The only reason I can think of for this not to work is that the service is called from client
. The only part of params
that will be passed to the server is the query
. You can see it here.
So my suggestion is that add that to your query? maybe do something like;
var params = { query: { year: 2018, $mongoose: { upsert: true } }
Then in your hooks you can check if $mongoose
exists and add it to the params and do not forget to delete it in your query.
You can also make use of paramsForServer
&& paramsFromClient
.
answered Nov 14 '18 at 7:26
Jalil
250214
250214
add a comment |
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53254729%2fhow-to-use-upsert-params-with-feathershjs%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