나는 기존의 mongodb 문서를 만들기 위해 시도하고있는 몽구스 모델 스키마를 가지고있다. 기존의 mongo 문서에는 동일한 콜렉션에 대한 자체 참조가 있습니다. 이 관계를 나타내는 스키마를 작성하려고 시도한 다음 populate method을 사용하려고 시도했습니다. 스키마 (일부 속성을 간결하게 제거) 아래처럼 보이는이mongoosejs 스키마에서 자체 참조를 채울 수 있습니까?
{ _id: '91320684-9a1a-4f2a-a03f-63a7a208ec9b',
pcap:
{ files: [] }
}
결과
models.file.findById("91320684-9a1a-4f2a-a03f-63a7a208ec9b")
.populate('pcap.files') // have also tried just 'files' w/ the same result
.exec(function (err, file) {
if (!err) {
console.log(file);
} else {
console.log(err);
}
});
을 :
이var fileSchema = new Schema({
_id: { type: String },
pcap: {
files: [{ type: Schema.Types.ObjectId, ref: 'Files' }]
}
});
var file = artifactConn.model('Files', fileSchema, 'info');
나는 다음과 같이 채울 다음 쿼리 위의 모델을 사용하고
mongohub에서 내 문서를 확인하면 다음과 같이 보입니다.
{ "_id" : "91320684-9a1a-4f2a-a03f-63a7a208ec9b",
"pcap" : {
"files" : [
{ "_id" : "e4eed129-b4aa-46fc-8df2-3f3f92e6fe53" },
{ "_id" : "8c0ecb98-452e-475d-a521-feba5c3d1426" },
{ "_id" : "4b87c467-f396-4bcf-a7b0-8419e8441ec0" } ] } }
전화를 걸 때 문제가 있습니까? 내 스키마 설정이있는 방식입니까? 데이터가 저장되는 방식입니까?
그것은 더 이상 빈 집합이다하지만 지금은 대신'파일입니다 : [정의되지 않은, 정의, 정의되지 않은]'. 적어도 현재 참조를 읽고 있지만 채워지지는 않습니다. 다른 생각? – ahsteele
populate ('pcap.files._id') – matthewtole
불행히도'.populate ('files')','.populate ('pcap.files._id')', 나는 여전히'files : [undefined, undefined, undefined]'로 끝나는 것과 같은 영향을 미친다. 그러나,'.populate ('pcap.files')'는 에러를 던집니다.'TypeError : 'undefined'의'ref '속성을 읽을 수 없습니다. 내가 누락 된 것에 대한 아이디어가 있습니까? – ahsteele