json - 无法读取 MongoDB Id 格式 |显示为缓冲区数组

标签 json node.js mongodb mongoose objectid

我是学习者和学生。我正在尝试学习nodejs + mongoose。我正在对 mongoose id 与两个不同的集合执行比较操作。

模型设计 模型一:

var ShowroomSchema = new Schema({ //ShowroomProduct/Item
    rug: { //product/itemDetails
        ...
        colourTags: [Schema.Types.ObjectId],
        ...
    }
});

模型二:

var ShowroomColourTagSchema = new Schema({ 
    name: String; 
})

我将 ShowroomColourTagSchema 的 id 存储在我的 ShowroomSchema 中,稍后尝试执行循环来检查 id 是否相等,以便打印颜色的名称。

功能

//colour tags
for (var index = 0; index < models.length; index++) { // model two id, name
      var element = models[index];

      for (var j = 0; j < item.rug.colourTags.length; j++) { // model one just array of object ids
         // for (var j in item.rug.sizeCategoryTags) {
         if (element._id.equals(item.rug.colourTags[j]._id)) {
              tags.push(element.name);
         }
      }
}

但我在尝试使条件发挥作用时遇到了问题。我正在尝试调试代码(最近 4-5 小时)。监视表达式将陈列室中的 colorTags 显示为缓冲区数组。

enter image description here

后端

showroom_colour_tags 集合

{ 
    "_id" : ObjectId("59c4310ada77350004cef56c"), 
    "updated_at" : ISODate("2017-09-21T21:37:14.043+0000"), 
    "created_at" : ISODate("2017-09-21T21:37:14.043+0000"), 
    "name" : "Black", 
    "__v" : NumberInt(0)
}
{ 
    "_id" : ObjectId("59c43114da77350004cef56e"), 
    "updated_at" : ISODate("2017-09-21T21:37:19.378+0000"), 
    "created_at" : ISODate("2017-09-21T21:37:19.378+0000"), 
    "name" : "Grey", 
    "__v" : NumberInt(0)
}
{ 
    "_id" : ObjectId("59c43170da77350004cef574"), 
    "updated_at" : ISODate("2017-09-21T21:37:24.036+0000"), 
    "created_at" : ISODate("2017-09-21T21:37:24.036+0000"), 
    "name" : "Beige", 
    "__v" : NumberInt(0)
}

展厅收藏

{
    "rug" : {
       ...
        "colourTags" : [
            ObjectId("59c43170da77350004cef574"), 
            ObjectId("59c43114da77350004cef56e")
        ]
      ...
    }
}

如何比较 ID????!我将非常感谢任何建议。提前致谢。如果您需要更多信息,请告诉我。 和平:)

最佳答案

从 item.rug.colourTags[j]._id 中删除 _id , colorTags 是一个数组,因此需要与位置进行比较。您更新的 if 条件将是。

if (element._id.equals(item.rug.colourTags[j])) 

关于json - 无法读取 MongoDB Id 格式 |显示为缓冲区数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46522704/

相关文章:

javascript - JavaScript 中的构建器设计模式

javascript - 如何修改数组中的属性

linux - 未授权查询 mongodb 上的 admin.system.namespaces

javascript - NodeJS 和 MongoDB "Cannot POST/"

javascript - 获取 JSON 对象中数组的长度

python - 使用 json 序列化时跳过未知项目

json - cfloop 在 startrow 之前返回空数组

javascript - MONGO_URL 用于在一台服务器上运行多个 Meteor 应用程序

javascript - 使用 Selenium NodeJS 双击日历

mongodb - 让我的 mongoDB 在每天的特定时间收集数据?