无法读取 MongoDB Id 格式 |显示为缓冲区数组
Can't read MongoDB Id format | displaying as bufferarray
我是学习者和学生。我正在尝试学习 nodejs + mongoose。我正在用两个不同的 collection 对 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 小时开始)。手表表达式将陈列室的 colourTags 显示为缓冲区数组。
后端
showroom_colour_tags collection
{
"_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)
}
陈列室collection
{
"rug" : {
...
"colourTags" : [
ObjectId("59c43170da77350004cef574"),
ObjectId("59c43114da77350004cef56e")
]
...
}
}
如何比较ID????!我将非常感谢任何建议。提前致谢。如果您需要更多信息,请告诉我。
和平:)
从 item.rug.colourTags[j]._id 中删除 _id ,colourTags 是一个数组,因此您需要与位置进行比较。您更新后的 if 条件将是。
if (element._id.equals(item.rug.colourTags[j]))
我是学习者和学生。我正在尝试学习 nodejs + mongoose。我正在用两个不同的 collection 对 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 小时开始)。手表表达式将陈列室的 colourTags 显示为缓冲区数组。
后端
showroom_colour_tags collection
{
"_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)
}
陈列室collection
{
"rug" : {
...
"colourTags" : [
ObjectId("59c43170da77350004cef574"),
ObjectId("59c43114da77350004cef56e")
]
...
}
}
如何比较ID????!我将非常感谢任何建议。提前致谢。如果您需要更多信息,请告诉我。 和平:)
从 item.rug.colourTags[j]._id 中删除 _id ,colourTags 是一个数组,因此您需要与位置进行比较。您更新后的 if 条件将是。
if (element._id.equals(item.rug.colourTags[j]))