Javascript 来自NodeJS中查询选择Mongoose的JSON解析eror

Javascript 来自NodeJS中查询选择Mongoose的JSON解析eror,javascript,node.js,json,mongodb,mongoose,Javascript,Node.js,Json,Mongodb,Mongoose,我有来自Mongoose中模式“通知”的数据,如下所示: { "_id" : ObjectId("5c141ef2a7c50a773661772d"), "title" : "MY POny", "message" : "message POny", "token" : "dHvoi4DQAMw:APA91bFGwBjDRCaOFaodRlgrVLKPLsXRlCymce5an_POCC5WlluOCbCbHWmXr2BvPqifdirxcSOwGJky-BBSyvDqj0ojwSrqDKrBH

我有来自Mongoose中模式“通知”的数据,如下所示:

{
"_id" : ObjectId("5c141ef2a7c50a773661772d"),
"title" : "MY POny",
"message" : "message POny",
"token" : "dHvoi4DQAMw:APA91bFGwBjDRCaOFaodRlgrVLKPLsXRlCymce5an_POCC5WlluOCbCbHWmXr2BvPqifdirxcSOwGJky-BBSyvDqj0ojwSrqDKrBHB0KwyNcZm2l-YHBpVkBlIOwfoiQkZsXZlFOxVj6",
"os" : "ANDROID",
"dateCreated" : ISODate("2018-12-14T14:21:51.834Z"),
"dateUpdated" : ISODate("2018-12-14T14:21:51.834Z"),
"deleted" : false,
"payload" : {
    "type" : "PROMO",
    "data" : {
        "message" : "blabalbla…",
        "url" : "https://www.pony.com/pony.png",
        "datetime" : "2018-02-06 17:00"
    }
},
"mobile" : "123456789101",
"id" : 171,
"__v" : 0,
"response" : {
    "multicast_id" : 4.83405561199415e+18,
    "success" : 1,
    "failure" : 0,
    "canonical_ids" : 0,
    "results" : [ 
        {
            "message_id" : "0:1544822514686455%29669a5329669a53"
        }
    ]
}
let notifShow ={
        mobile : getListNotif.mobile,
        payload : getListNotif.payload
    }
res.status(200).json(notifShow)
}

我有这样的疑问

let getListNotif = await NOTIF.find({mobile : mobile, 'payload.type' : {$ne : 'TRANSACTION'}}).sort({'dateCreated': -1}).limit(limit)
我想这样输出:

{
"_id" : ObjectId("5c141ef2a7c50a773661772d"),
"title" : "MY POny",
"message" : "message POny",
"token" : "dHvoi4DQAMw:APA91bFGwBjDRCaOFaodRlgrVLKPLsXRlCymce5an_POCC5WlluOCbCbHWmXr2BvPqifdirxcSOwGJky-BBSyvDqj0ojwSrqDKrBHB0KwyNcZm2l-YHBpVkBlIOwfoiQkZsXZlFOxVj6",
"os" : "ANDROID",
"dateCreated" : ISODate("2018-12-14T14:21:51.834Z"),
"dateUpdated" : ISODate("2018-12-14T14:21:51.834Z"),
"deleted" : false,
"payload" : {
    "type" : "PROMO",
    "data" : {
        "message" : "blabalbla…",
        "url" : "https://www.pony.com/pony.png",
        "datetime" : "2018-02-06 17:00"
    }
},
"mobile" : "123456789101",
"id" : 171,
"__v" : 0,
"response" : {
    "multicast_id" : 4.83405561199415e+18,
    "success" : 1,
    "failure" : 0,
    "canonical_ids" : 0,
    "results" : [ 
        {
            "message_id" : "0:1544822514686455%29669a5329669a53"
        }
    ]
}
let notifShow ={
        mobile : getListNotif.mobile,
        payload : getListNotif.payload
    }
res.status(200).json(notifShow)
当我想这样发送时,为什么在节点js中出现json解析错误:

{
"_id" : ObjectId("5c141ef2a7c50a773661772d"),
"title" : "MY POny",
"message" : "message POny",
"token" : "dHvoi4DQAMw:APA91bFGwBjDRCaOFaodRlgrVLKPLsXRlCymce5an_POCC5WlluOCbCbHWmXr2BvPqifdirxcSOwGJky-BBSyvDqj0ojwSrqDKrBHB0KwyNcZm2l-YHBpVkBlIOwfoiQkZsXZlFOxVj6",
"os" : "ANDROID",
"dateCreated" : ISODate("2018-12-14T14:21:51.834Z"),
"dateUpdated" : ISODate("2018-12-14T14:21:51.834Z"),
"deleted" : false,
"payload" : {
    "type" : "PROMO",
    "data" : {
        "message" : "blabalbla…",
        "url" : "https://www.pony.com/pony.png",
        "datetime" : "2018-02-06 17:00"
    }
},
"mobile" : "123456789101",
"id" : 171,
"__v" : 0,
"response" : {
    "multicast_id" : 4.83405561199415e+18,
    "success" : 1,
    "failure" : 0,
    "canonical_ids" : 0,
    "results" : [ 
        {
            "message_id" : "0:1544822514686455%29669a5329669a53"
        }
    ]
}
let notifShow ={
        mobile : getListNotif.mobile,
        payload : getListNotif.payload
    }
res.status(200).json(notifShow)
修好

try {
    let getListNotif = await NOTIF.find({'token' : token, 'payload.type' : {$ne : 'TRANSACTION'}}).sort({'dateCreated': -1}).limit(limit)
    let array = []
    let notifShow = {}
    for(let i = 0; i < getListNotif.length; i++){
        notifShow = {
            mobile : getListNotif[i].mobile,
            payload : getListNotif[i].payload
        }
        array.push(notifShow)
    }
    res.status(200).json(array)
} catch (error) {
    logger.error(error.message)
    res.status(422).json(Object.assign({message: error.message}, params))
}
试试看{
让getListNotif=Wait NOTIF.find({'token':token'payload.type':{$ne:'TRANSACTION'})。排序({'dateCreated':-1})。限制(limit)
让数组=[]
让notifShow={}
for(设i=0;i
很有趣。您发布的代码中没有任何内容会导致此类错误。您是否尝试过console.log-ging notifShow?此外,如果您只想从该查询中获取两个字段mobile和payload,则可以使用查询投影来限制从数据库中提取的数据量。将字符串“mobile payload”作为NOTIF.find的第二个参数