2017-11-15 3 views
0

나는 다음과 같은 배열의 스키마를 만들려고 해요 : 내가 노력하고있을 때몽구스 중첩 배열 스키마

import mongoose from 'mongoose'; 

const CookieSchema = mongoose.Schema(
    { 
    name: String, 
    path: String, 
    expires: String, 
    size: String 
    } 
) 

const RunSchema = mongoose.Schema(
    { 
    reports: { 
     cookieSummary: [CookieSchema] 
    } 
    } 
) 

export default mongoose.model('Run', RunSchema); 

을 다음 :

const data = [ [ { name: 'AKA_A2', 
     path: '/', 
     expires: 1510762544.752427, 
     size: 7 }, 
    { name: 'userInfo', 
     path: '/', 
     expires: 0, 
     size: 82 }, 
    { name: 'userInfo', 
     path: '/', 
     expires: 0, 
     size: 82 } ] ] 

이 내가 만든 그 Schema입니다 이 스키마에서 문서를 업데이트하려면 null 응답을 받고 문서가 업데이트되지 않습니다.

내 문서는 다음과 같습니다
Run.findOneAndUpdate({_id: runId}, {$set: {'reports.cookieSummary': data}}, (err, doc) => { 
    console.log(doc); 
}); 

:

{ 
    "_id": { 
     "$oid": "5a0c5e86d4b737549e88d8cf" 
    }, 
    "reports": {}, 
    "__v": 0 
} 
+0

데이터는 [{}, {}, {}] 객체의 배열이어야합니다. 현재 배열 [[{}, {}]]의 배열입니다. – RootHacker

+0

스키마를 해당 형식으로 변경하려면 어떻게해야합니까? – Valip

+0

틀린 질문입니다. * "데이터를 올바른 형식으로 변경하는 방법"*. 문제를 지속하는 데는 거의 요점이 없습니다. 귀하의 데이터가 잘못되었습니다. 당신은 * "구부러진 휠을 조정하는 구부러진 스패너"를 만들지 않습니다 * 당신은 단지 휠을 수정하여 작업이 처음 정확하게 이루어 지도록합니다. –

답변

0

시도가

const RunSchema = mongoose.Schema(
    { 
    reports: { 
     cookieSummary: [[CookieSchema]] 
    } 
    } 
) 
0

// 이전 된 답변에 스키마를 변경하는 것입니다하지 수

내 코드입니다 당신의 대답을 위해 지워졌습니다. 두 개의 스키마를 만들 필요가 없습니다.

import mongoose from 'mongoose'; 
const RunSchema = mongoose.Schema({ 
    reports: { 
      cookieSummary: { 
        name: String, 
        path: String, 
        expires: String, 
        size: String 
      } 
     } 
}) 

export default mongoose.model('Run', RunSchema);