javascript - 无法将 id 保存到变量

标签 javascript mongodb

我在将 id 字段分配给变量时遇到问题。

鉴于此:

var temp;

if(!data.obj.id){
    console.log('*************** assigning ' + data.obj.id + ' to temp');
    temp = data.obj.id;
    console.log('temp is',temp);
}else if(!data.obj._id){
    console.log('*************** assigning ' + data.obj._id + ' to temp');
    temp = data.obj._id;
    console.log('temp is: ',temp);
}

console.log('**************',data.obj._id);
console.log('**************',temp);

这些 if 语句都不是 true,并且控制台日志返回,

************ 538cdd6fca343660389d4d69

************未定义

编辑:

我也尝试过:

if(data.obj.hasOwnProperty('id')){
        console.log('*************** assigning ' + data.obj.id + ' to temp');
        temp = data.obj.id;
        console.log('temp is',temp);
    }else if(data.obj.hasOwnProperty('_id')){
        console.log('*************** assigning ' + data.obj._id + ' to temp');
        temp = data.obj._id;
        console.log('temp is: ',temp);
    }

    console.log('**************',data.obj._id);
    console.log('**************',temp);

并且 temp 仍未定义。

编辑2:

我已将代码更改为:

var temp;

if(data.obj.hasOwnProperty('id')){
    console.log('*************** assigning ' + data.obj.id + ' to temp');
    temp = data.obj.id;
    console.log('temp is' + temp);
}

if(data.obj.hasOwnProperty('_id')){
    console.log('*************** assigning ' + data.obj._id + ' to temp');
    temp = data.obj._id;
    console.log('temp is' + temp);
}

console.log('**************',data.obj._id);
console.log('**************',data.obj.id);
console.log('**************',temp);

我得到:

************** 538ce08c6ced88c020ecbd07
************** 538ce08c6ced88c020ecbd07
************** undefined

最佳答案

您没有记录 data.obj.id 的值,但大概它也是 true,就像 _id (从某种意义上说,它们的否定返回 false) 。因此,在您的示例中,第一个和第二个 if 子句都没有得到满足,并且两个分支都没有执行。似乎您想从两个 if 子句中删除否定运算符 !,但在没有上下文的情况下很难判断。

关于javascript - 无法将 id 保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002717/

相关文章:

mongodb - 如何在Kubernetes环境上的mongoDB上远程初始化副本集

javascript - 如何将方括号对象键从 URL 位置转换为 Javascript 中的嵌套对象?

javascript - TypeScript:将函数调用转换为非空

javascript - d3 版本 4 中的 d3.layout.treemap

javascript - 在 C# 中调用 Javascript 函数

javascript - 从 JavaScript 驱动的表单获取文本字段值并将这些值附加到 div

php - Phalcon ODM 批量删除

c# - .net core + MongoDB 如何动态创建数据库

mongodb - 如果对象在 mongodb 文档中具有相同的键,则将它们分组并推送到数组中

node.js - 如何正确解耦 MongoDB