Mongodb error : The 'cursor' option is required, except for aggregation explain












7














I am using the mongodb 3.5.5 with mongoose 4.9.8 and the Node.js version is 7.10, when I publish my app to production server, the error was happened, but in my develop environment is work.



How can I fix them?



The error message:



{ MongoError: The 'cursor' option is required, except for aggregation explain
at Function.MongoError.create (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/error.js:31:11)
at /data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:489:72
at authenticateStragglers (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:435:16)
at Connection.messageHandler (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:469:5)
at Socket.<anonymous> (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/connection.js:321:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at readableAddChunk (_stream_readable.js:178:18)
at Socket.Readable.push (_stream_readable.js:136:10)
at TCP.onread (net.js:561:20)
name: 'MongoError',
message: 'The 'cursor' option is required, except for aggregation explain',
ok: 0,
errmsg: 'The 'cursor' option is required, except for aggregation explain',
code: 9,
codeName: 'FailedToParse' }


js code:



  articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
return this.model('ArticleLike').aggregate([
{ $match: { id: id } },
{ $group: { _id: '$id', count: { $sum: 1 } } }
]).then(sum => {
if (!sum || sum.length === 0) return Promise.resolve({count: 0})
else return Promise.resolve(sum[0])
})
}


The Mongoose execute command:



Mongoose: articlelikes.aggregate([ { '$match': { id: '1494606935' } }, { '$group': { _id: '$id', count: { '$sum': 1 } } } ], {})









share|improve this question
























  • See if this helps stackoverflow.com/questions/43442588/…
    – Veeram
    May 13 '17 at 19:21










  • Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
    – Tobias
    Jan 1 at 21:32










  • Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
    – Anthony Winzlet
    Sep 9 at 18:42
















7














I am using the mongodb 3.5.5 with mongoose 4.9.8 and the Node.js version is 7.10, when I publish my app to production server, the error was happened, but in my develop environment is work.



How can I fix them?



The error message:



{ MongoError: The 'cursor' option is required, except for aggregation explain
at Function.MongoError.create (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/error.js:31:11)
at /data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:489:72
at authenticateStragglers (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:435:16)
at Connection.messageHandler (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:469:5)
at Socket.<anonymous> (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/connection.js:321:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at readableAddChunk (_stream_readable.js:178:18)
at Socket.Readable.push (_stream_readable.js:136:10)
at TCP.onread (net.js:561:20)
name: 'MongoError',
message: 'The 'cursor' option is required, except for aggregation explain',
ok: 0,
errmsg: 'The 'cursor' option is required, except for aggregation explain',
code: 9,
codeName: 'FailedToParse' }


js code:



  articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
return this.model('ArticleLike').aggregate([
{ $match: { id: id } },
{ $group: { _id: '$id', count: { $sum: 1 } } }
]).then(sum => {
if (!sum || sum.length === 0) return Promise.resolve({count: 0})
else return Promise.resolve(sum[0])
})
}


The Mongoose execute command:



Mongoose: articlelikes.aggregate([ { '$match': { id: '1494606935' } }, { '$group': { _id: '$id', count: { '$sum': 1 } } } ], {})









share|improve this question
























  • See if this helps stackoverflow.com/questions/43442588/…
    – Veeram
    May 13 '17 at 19:21










  • Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
    – Tobias
    Jan 1 at 21:32










  • Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
    – Anthony Winzlet
    Sep 9 at 18:42














7












7








7







I am using the mongodb 3.5.5 with mongoose 4.9.8 and the Node.js version is 7.10, when I publish my app to production server, the error was happened, but in my develop environment is work.



How can I fix them?



The error message:



{ MongoError: The 'cursor' option is required, except for aggregation explain
at Function.MongoError.create (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/error.js:31:11)
at /data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:489:72
at authenticateStragglers (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:435:16)
at Connection.messageHandler (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:469:5)
at Socket.<anonymous> (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/connection.js:321:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at readableAddChunk (_stream_readable.js:178:18)
at Socket.Readable.push (_stream_readable.js:136:10)
at TCP.onread (net.js:561:20)
name: 'MongoError',
message: 'The 'cursor' option is required, except for aggregation explain',
ok: 0,
errmsg: 'The 'cursor' option is required, except for aggregation explain',
code: 9,
codeName: 'FailedToParse' }


js code:



  articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
return this.model('ArticleLike').aggregate([
{ $match: { id: id } },
{ $group: { _id: '$id', count: { $sum: 1 } } }
]).then(sum => {
if (!sum || sum.length === 0) return Promise.resolve({count: 0})
else return Promise.resolve(sum[0])
})
}


The Mongoose execute command:



Mongoose: articlelikes.aggregate([ { '$match': { id: '1494606935' } }, { '$group': { _id: '$id', count: { '$sum': 1 } } } ], {})









share|improve this question















I am using the mongodb 3.5.5 with mongoose 4.9.8 and the Node.js version is 7.10, when I publish my app to production server, the error was happened, but in my develop environment is work.



How can I fix them?



The error message:



{ MongoError: The 'cursor' option is required, except for aggregation explain
at Function.MongoError.create (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/error.js:31:11)
at /data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:489:72
at authenticateStragglers (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:435:16)
at Connection.messageHandler (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/pool.js:469:5)
at Socket.<anonymous> (/data/deploy/aaa/webapp/node_modules/mongodb-core/lib/connection/connection.js:321:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at readableAddChunk (_stream_readable.js:178:18)
at Socket.Readable.push (_stream_readable.js:136:10)
at TCP.onread (net.js:561:20)
name: 'MongoError',
message: 'The 'cursor' option is required, except for aggregation explain',
ok: 0,
errmsg: 'The 'cursor' option is required, except for aggregation explain',
code: 9,
codeName: 'FailedToParse' }


js code:



  articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
return this.model('ArticleLike').aggregate([
{ $match: { id: id } },
{ $group: { _id: '$id', count: { $sum: 1 } } }
]).then(sum => {
if (!sum || sum.length === 0) return Promise.resolve({count: 0})
else return Promise.resolve(sum[0])
})
}


The Mongoose execute command:



Mongoose: articlelikes.aggregate([ { '$match': { id: '1494606935' } }, { '$group': { _id: '$id', count: { '$sum': 1 } } } ], {})






node.js mongodb mongoose






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 13 '17 at 17:42

























asked May 13 '17 at 17:22









Tericky Shih

98421220




98421220












  • See if this helps stackoverflow.com/questions/43442588/…
    – Veeram
    May 13 '17 at 19:21










  • Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
    – Tobias
    Jan 1 at 21:32










  • Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
    – Anthony Winzlet
    Sep 9 at 18:42


















  • See if this helps stackoverflow.com/questions/43442588/…
    – Veeram
    May 13 '17 at 19:21










  • Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
    – Tobias
    Jan 1 at 21:32










  • Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
    – Anthony Winzlet
    Sep 9 at 18:42
















See if this helps stackoverflow.com/questions/43442588/…
– Veeram
May 13 '17 at 19:21




See if this helps stackoverflow.com/questions/43442588/…
– Veeram
May 13 '17 at 19:21












Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
– Tobias
Jan 1 at 21:32




Possible duplicate of Mongoose aggregation query fails in Jest/Mockgoose test, works elsewhere
– Tobias
Jan 1 at 21:32












Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
– Anthony Winzlet
Sep 9 at 18:42




Possible duplicate of MongoError: The 'cursor' option is required, except for aggregate with the explain argument
– Anthony Winzlet
Sep 9 at 18:42












1 Answer
1






active

oldest

votes


















0














You need to provide cursor option for aggregate calls which is changed in Mongo 3.6



https://docs.mongodb.com/manual/reference/command/aggregate/#dbcmd.aggregate



So adding {cursor:{}} to you aggregate call should resolve this problem:



  articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
return this.model('ArticleLike').aggregate([
{ $match: { id: id } },
{ $group: { _id: '$id', count: { $sum: 1 } } }
], {cursor:{}}).then(sum => {
if (!sum || sum.length === 0) return Promise.resolve({count: 0})
else return Promise.resolve(sum[0])
})
}





share|improve this answer





















    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%2f43955950%2fmongodb-error-the-cursor-option-is-required-except-for-aggregation-explain%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









    0














    You need to provide cursor option for aggregate calls which is changed in Mongo 3.6



    https://docs.mongodb.com/manual/reference/command/aggregate/#dbcmd.aggregate



    So adding {cursor:{}} to you aggregate call should resolve this problem:



      articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
    return this.model('ArticleLike').aggregate([
    { $match: { id: id } },
    { $group: { _id: '$id', count: { $sum: 1 } } }
    ], {cursor:{}}).then(sum => {
    if (!sum || sum.length === 0) return Promise.resolve({count: 0})
    else return Promise.resolve(sum[0])
    })
    }





    share|improve this answer


























      0














      You need to provide cursor option for aggregate calls which is changed in Mongo 3.6



      https://docs.mongodb.com/manual/reference/command/aggregate/#dbcmd.aggregate



      So adding {cursor:{}} to you aggregate call should resolve this problem:



        articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
      return this.model('ArticleLike').aggregate([
      { $match: { id: id } },
      { $group: { _id: '$id', count: { $sum: 1 } } }
      ], {cursor:{}}).then(sum => {
      if (!sum || sum.length === 0) return Promise.resolve({count: 0})
      else return Promise.resolve(sum[0])
      })
      }





      share|improve this answer
























        0












        0








        0






        You need to provide cursor option for aggregate calls which is changed in Mongo 3.6



        https://docs.mongodb.com/manual/reference/command/aggregate/#dbcmd.aggregate



        So adding {cursor:{}} to you aggregate call should resolve this problem:



          articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
        return this.model('ArticleLike').aggregate([
        { $match: { id: id } },
        { $group: { _id: '$id', count: { $sum: 1 } } }
        ], {cursor:{}}).then(sum => {
        if (!sum || sum.length === 0) return Promise.resolve({count: 0})
        else return Promise.resolve(sum[0])
        })
        }





        share|improve this answer












        You need to provide cursor option for aggregate calls which is changed in Mongo 3.6



        https://docs.mongodb.com/manual/reference/command/aggregate/#dbcmd.aggregate



        So adding {cursor:{}} to you aggregate call should resolve this problem:



          articleLikeSchema.statics.sumById = function ({id = ''} = {}) {
        return this.model('ArticleLike').aggregate([
        { $match: { id: id } },
        { $group: { _id: '$id', count: { $sum: 1 } } }
        ], {cursor:{}}).then(sum => {
        if (!sum || sum.length === 0) return Promise.resolve({count: 0})
        else return Promise.resolve(sum[0])
        })
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 22 at 18:11









        Himanshu

        8519




        8519






























            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.





            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f43955950%2fmongodb-error-the-cursor-option-is-required-except-for-aggregation-explain%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

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            Alexandru Averescu

            Trompette piccolo