나는 (ta-daaa) scope-crept가있는 프로젝트를 가지고있다.MongoDB 디자인/리팩토링
교정 된 도구를 추적하기위한 간단한 앱으로 시작한 것 (각 도구는 교정을 확인하기 위해 1 년주기주기가 있음)이 재고 추적으로 바뀌 었습니다.
그래서 내 현재의 모델은 일부 필수 필드 및 교정에 내장 된 문서를 가지고
{
_id: ObjectId("51b0d94c3f72fb89c9000014"),
barcode: "H-131887",
calibrations: [
{
_id: ObjectId("51b0d94c3f72fb89c9000015"),
cal_date: ISODate("2013-07-03T16:04:57.893Z"),
cal_date_due: ISODate("2013-07-03T16:04:57.894Z"),
ats_in: ISODate("2013-06-01T16:04:57.895Z"),
ats_out: ISODate("2013-06-06T16:04:57.897Z")
},
{
_id: ObjectId("51b0e6053f72fbb27900001b"),
cal_date: ISODate("2013-06-13T00:00:00Z"),
cal_date_due: ISODate("2014-06-13T00:00:00Z"),
ats_in: ISODate("2013-06-06T00:00:00Z"),
ats_out: ISODate("2013-06-17T00:00:00Z"),
updated_at: ISODate("2013-07-09T14:44:31.113Z"),
created_at: ISODate("2013-06-06T19:41:57.770Z")
}
],
created_at: ISODate("2013-06-06T18:47:40.481Z"),
creator_id: ObjectId("5170547c791e4b1a16000001"),
description: "",
group: "engine",
location: "Cabinet 1",
maker: "MITUTOYO",
model: "2046S",
serial: "QEL228",
status: "In",
tool: "Dial Indicator",
updated_at: ISODate("2013-07-09T14:44:31.103Z")
}
바코드/시리얼이 사람들을 위해 필요하지 않습니다이 스키마의 비 보정 툴을 허용하는 가장 좋은 방법이 될 것입니다 무엇 도구? 또한 교정 날짜가 없으므로 공구 및 최신 교정 날짜를 나열하는 현재 표가 무효 교정을 반환하지 않습니다.
문서의 하위 집합에 속하고 쿼리가 필요한 모든 필드에 스파 스 인덱스를 사용하는 것이 좋습니다. http://docs.mongodb.org/manual/core/indexes/#sparse-indexes –
참으로보십시오! 스파 스가 유용합니다! 링크 업데이트 : http://docs.mongodb.org/manual/core/index-sparse/ – kroe