[MONGODB] 항상 임베디드와 엠버 데이터 다중 계층 구조
MONGODB항상 임베디드와 엠버 데이터 다중 계층 구조
나는 한 단계 항상 임베디드 사용할 수 근데 저는 두 수준 깊은 모델을 사용할 수 없습니다입니다. 긴급한 도움이 필요하십니까
App.Post = DS.Model.extend(
title: DS.attr("string")
comment: DS.belongsTo("App.Comment")
)
App.Comment = DS.Model.extend(
text: DS.attr("string")
ferment: DS.belongsTo("App.Ferment")
)
App.Ferment = DS.Model.extend(
fermenter: DS.attr("string")
)
App.Adapter.map App.Post,
'comment':
embedded: "always"
App.Adapter.map App.Comment,
ferment :
embedded: "always"
# -----------------------------
App.store = App.Store.create(
adapter: App.Adapter.create()
)
# -----------------------------
App.store.adapter.load App.store, App.Post,
id: 12
comment: {text: "blabla", ferment:{fermenter:'abcd'}}
console.log App.Post.find(12).get("comment.text")
console.log App.Post.find(12).get("comment.ferment.fermenter")
나는 blabla로 comment.text에 대한 로그 수 그러나 일에 두 번째 부분을 얻을 수 없습니다. 나는 엠버 데이터 저장소의 개정 (11)를 사용하고 있습니다. 비슷한 문제 / 솔루션 중 하나.
흥미롭게도 우리는 포스트 -hasMany-> 댓글, 의견 -hasOne-> 발효 있도록 hasMany의 시도. 이 작품의 벌금, 여기에 코드입니다.
App.Post = DS.Model.extend(
title: DS.attr("string")
comments: DS.hasMany("App.Comment")
)
App.Comment = DS.Model.extend(
text: DS.attr("string")
ferment: DS.belongsTo("App.Ferment")
)
App.Ferment = DS.Model.extend(
fermi: DS.attr("string")
)
App.Adapter.map App.Post,
comments:
embedded: "always"
App.Adapter.map App.Comment,
ferment:
embedded: "always"
App.store = App.Store.create(
adapter: App.Adapter.create()
)
# App.store.adapter.serializer.configure(App.Comment,
# sideloadAs: 'comments'
# )
App.store.adapter.load App.store, App.Post,
id: 12
comments: [{text: "blabla", ferment:{fermi: "found fermi"}}]
console.log App.Post.find(12).get("comments.firstObject.text")
console.log App.Post.find(12).get("comments.firstObject.ferment.fermi")
해결법
-
==============================
1.엠버 레일에 남아있는 몇 가지 버그 수정은 여전히 있습니다 : 때문에 우리는 함수의 고통
엠버 레일에 남아있는 몇 가지 버그 수정은 여전히 있습니다 : 때문에 우리는 함수의 고통
extractEmbeddedBelongsTo: function(loader, relationship, data, parent, prematerialized) { var reference = this.extractRecordRepresentation(loader, relationship.type, data, true); prematerialized[relationship.key] = reference; // If the embedded record should also be saved back when serializing the parent, // make sure we set its parent since it will not have an ID. var embeddedType = this.embeddedType(parent.type, relationship.key); if (embeddedType === 'always') { reference.parent = parent; }
}
관계에 BelongsTo 임베디드 오브젝트의 추출을 생략한다. 잘못된 사람은 여기에 있습니다 :
extractEmbeddedBelongsTo: function(loader, relationship, data, parent, prematerialized) { var reference = loader.sideload(relationship.type, data); prematerialized[relationship.key] = reference; // If the embedded record should also be saved back when serializing the parent, // make sure we set its parent since it will not have an ID. var embeddedType = this.embeddedType(parent.type, relationship.key); if (embeddedType === 'always') { reference.parent = parent; }
}
from https://stackoverflow.com/questions/14896049/ember-data-multi-level-hierarchy-with-embedded-always by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 원자 조작으로 하나 개의 문서에 부울 필드를 전환하려면? (0) | 2019.12.19 |
---|---|
[MONGODB] 업데이트 arrayFilters와 MongoDB를에서 하위 문서를 중첩 (0) | 2019.12.19 |
[MONGODB] 하위 문서에 Nodejs 몽고 삽입 - 동적 필드 이름 (0) | 2019.12.19 |
[MONGODB] MongoDB를 3.x를 드라이버 안드로이드 호환성 (0) | 2019.12.19 |
[MONGODB] 몽고와 모든 문서에서 배열 발생을 계산 (0) | 2019.12.19 |