나는 학생이며 학생입니다. 나는 nodejs + 몽구스를 배우려고 노력하고 있었다. 몽구스 ID에 대해 두 개의 다른 콜렉션을 사용하여 비교 연산을 수행했습니다.MongoDB Id 형식을 읽을 수 없습니다. | bufferarray로 표시
모델 디자인 모델 하나를
var ShowroomSchema = new Schema({ //ShowroomProduct/Item
rug: { //product/itemDetails
...
colourTags: [Schema.Types.ObjectId],
...
}
});
모델이 :
var ShowroomColourTagSchema = new Schema({
name: String;
})
내가 루프를 수행하려는 나중에 내 ShowroomSchema에 ShowroomColourTagSchema의 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 시간 동안 코드를 디버깅하려고합니다. 시계 식은 showroom의 colourTags를 버퍼 배열로 표시합니다.
백엔드
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의 ????를 비교할 수 있습니다! 나는 어떤 제안에 대해서도 매우 감사 할 것입니다. 미리 감사드립니다. 자세한 정보가 필요한 경우 알려주십시오. 평화 :
나는 몽구스에 대해 전문가가 아니지만, ObjectId를'.equal()'메소드와 비교할 수 있어야합니다. 이 답변을 확인하십시오 : https://stackoverflow.com/a/11638106/3411075 – Alexander
item.rug.colourTags [j] ._ id에서 _id를 제거하면 colourTags는 배열이므로 위치 조건과 비교해야합니다. 예 : if (element._id.equals (item.rug.colourTags [j])) –
예 참으로 ... 작동합니다 –