【问题标题】:Unable to store a json object in mongoose无法在猫鼬中存储 json 对象
【发布时间】:2020-01-16 17:05:48
【问题描述】:

我一直在尝试使用 mongoose 在我的数据库中存储一个 JSON 对象。我已经制作了我的架构并对其进行了建模。

我尝试将类型设置为对象,但这没有帮助。我要输入的数据在这里:https://api.ipdata.co/?api-key=test

我的代码是:

    body = JSON.parse(body);
        console.log(body);
        const log = new model.Log({
            useragent: data.useragent,
            browserName: data.browser.name,
            browserVersion: data.browser.version,
            browserMajorVersion: parseInt(data.browser.majorVersion, 10),
            deviceType: type,
            CPu: data.CPU,
            OSName: data.OS.name,
            OSVersion: data.OS.version,
            mobileOS: mobileOS,
            ipAddress: ipAddress,
            ipData: body (I've tried doing ipData: { ip: body.ip, ...} too)
        });

我的架构:

const connectLogSchema = new mongoose.Schema({
    useragent: String,
    browserName: String,
    browserVersion: String,
    browserMajorVersion: Number,
    deviceType: String,
    CPU: String,
    OSName: String,
    OSVersion: String,
    mobileOS: String,
    ipAddress: String,
    idData: {
            ip: String,
            is_eu: Boolean,
            city: String,
            region: String,
            region_code: String,
            country_name: String,
            country_code: String,
            continent_name: String,
            continent_code: String,
            latitude: Number,
            longitude: Number,
            postal: String,
            calling_code: String,
            flag: String,
            emoji_flag: String,
            emoji_unicode: String,
        asn: {
            asn: String,
            name: String,
            domain: String,
            route: String,
            type: String
        },
        languages: [new mongoose.Schema({name: String, native: String})],
        currency: {
            name: String,
            code: String,
            symbol: String,
            native: String,
            plural: String
        },
        time_zone: {
            name: String,
            abbr: String,
            offset: String,
            is_dst: Boolean,
            current_time: String
        },
        threat: {
            is_tor: Boolean,
            is_proxy: Boolean,
            is_anonymous: Boolean,
            is_known_attacker: Boolean,
            is_known_abuser: Boolean,
            is_threat: Boolean,
            is_bogon: Boolean
        }
    },
    timestamp: { type: Date, default: () => moment().utc().format() }
});

一个空的 ipData 字段出现在数据库中,只有语言数组,但它也是空的。此时我迷路了,我不知道下一步该怎么做,请帮助!

【问题讨论】:

  • 为了清楚起见,req.body 对象是否包含您要保存在数据库中的所有数据?
  • @SamiShamesEl-Deen 是的,是请求模块回调的body对象。

标签: javascript node.js json mongodb mongoose


【解决方案1】:

ipData、idData 拼写错误。如果以后有人误会,请检查拼写。

【讨论】:

    猜你喜欢
    • 2017-11-28
    • 2018-06-24
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2017-06-09
    • 2021-09-25
    • 1970-01-01
    • 2016-05-03
    相关资源
    最近更新 更多