미리 κ²°μ λ ν€κ° μλ κ°μ²΄ λ΄μμ ν¬ν¨λ λ¬Έμλ₯Ό μ¬μ©νλ λ°©λ²μ΄ μμ΅λκΉ? ie λ€μκ³Ό κ°μ μν©λ³΄λ€λ:
var myschema = new mongoose.Schema({
field : { foo: String, bar: String }
});
λ€μκ³Ό κ°μ΄ λ§ν μ μμ΅λλ€.
var myschema = new mongoose.Schema({
field : { *: String }
});
κ·Έλ° μμΌλ‘ λ°°μ΄μ μ‘°κΈ λ λ§λλλ€. κ·Έλ¬λ μμ΄λμ΄λ ν€λ₯Ό 미리 μμ§ λͺ»νμ§λ§ μ¬μ ν ν¬ν¨λ λ¬Έμλ₯Ό κ°μ§ μ μκΈ°λ₯Ό μνλ€λ κ²μ λλ€.
μκΈ°.
Mixed
μ νμ μ΄λ»μ΅λκΉ?
@aheckmann - κ·Έκ²μ΄ λ΄κ° λλ €μνλ κ²μ λλ€. μ΄κ²μ΄ λ‘λ맡μ μλμ§ μλλ©΄ μ΄κ²μ΄ λ리 νμνμ§ μμ κ²μΈμ§ μκ³ μμ΅λκΉ?
@TooTallNate - λ§μ΅λλ€. κΈ°λ³Έκ°μ λλ€. λ¬Έμ λ νΌν©μ μ¬μ©νλ©΄ μ§μλλ(λͺ λͺ λ ν€ λ° λ°°μ΄) ν¬ν¨λ λ¬Έμλ‘ μ»μ μ μλ λͺ¨λ μ ν¨μ± κ²μ¬/μ€ν€λ§ νλͺ©μ μκ² λλ€λ κ²μ λλ€.
@ordrin μ무λ μ μ κ·Έκ²μ νμλ‘νμ§ μμμ΅λλ€
μ’μ, λ΄κ° κ·Έλ κ² λν΄ν μΌμ νκ³ μλμ§ λͺ°λμ΄! μ μ₯.
λλ μ΄κ²μ λν μ¬μ© μ¬λ‘κ° μμΌλ©° μ μ΄λ κ·Έκ²μ΄ κ΄λ ¨μ΄ μλ€κ³ μκ°ν©λλ€.
ACL μμ€ν μ λ§λ€κ³ μμ΅λλ€.
λ΄ μμ μλ λ¬Έμμ΄μΈ _idκ° μμ΅λλ€.
κ·Έ IDλ₯Ό λ΄ νμμ νμ λ μ½λ(κ·Έλ€μ΄ ν μ μλ μμ μ λ°°μ΄)μ ν¬ν¨νκ³ μΆμ΅λλ€.
λ¬Όλ‘ "tasks" μμ±μ λ¬Έμμ΄ λ°°μ΄μ λ£μ μ μμ§λ§ μ΄μμ μΌλ‘λ μ΄ μλ리μ€μμ DBrefλ₯Ό μ¬μ©νμ¬ λ©νλ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μμ΅λλ€.
@ordrin λ°©κΈ λ€μ μ½μμ΅λλ€. Mixed μ¬μ©μ 보μμ΅λκΉ? λλ b/ciκ° "μλ² λλ λ¬Έμ"λ₯Ό MongoDBκ° μ°Έμ‘°νλ λ°©μκ³Ό λ€λ₯΄κ² μκ°νλ€κ³ μ€ν΄νμ μ μμ΅λλ€. μΌλ°μ μΌλ‘ νΌν©μΌλ‘ ν μ μλ μμ μ λ€μκ³Ό κ°μ΅λλ€.
var myschema = new mongoose.Schema({
field : mongoose.Schema.Types.Mixed
});
μ΄κ²μ κ·νκ° μμ²ν κ²κ³Ό λ§€μ° κ°κΉμ΅λλ€. μ΄ κ²½μ° "νλ"λ λͺ¨λ κ°μ ν λΉν μ μμ΅λλ€. κ°μ²΄ 리ν°λ΄μ ν λΉνκ³ κ°μ΄ λ¬Έμμ΄μΈμ§ νμΈνκΈ° μν΄ μ¬μ©μ μ§μ μ ν¨μ± κ²μ¬κΈ°λ₯Ό μΆκ°ν μ μμ΅λλ€.
myschema.path('field').validate(yourCustomValidator, 'your custom vaildator failed msg');
function yourCustomValidator (value) {
// check that value is an object etc
return true|false
}
var M = mongoose.model('M', myschema);
var m = new M;
m.field = { might: "work", for: "you" }
m.save();
λλ μ΄κ²κ³Ό λΉμ·ν κΈ°λ₯μ μ°Ύκ³ μλ€λ κ²μ μΆκ°νκ³ μΆμμ΅λλ€. κ°λ ₯ν νμμ μ€ν€λ§ κ°μ κ°μ§ λμ ν€λ₯Ό κ°κ³ μΆμμ΅λλ€. μ ν¨μ± κ²μ¬λ₯Ό μλμΌλ‘ μννμ§ μμλ λλ€λ©΄ νμμ μΌ κ²μ λλ€.
new mongoose.Schema({
dynamicKey: {foo: Number, isAwesome: Boolean}
});
or
new mongoose.Schema({
dynamicKey: value is always only a Number
});
+1
+1
+1.
μ΄ λ¬Έμ μ κ΄λ ¨νμ¬ SO κ²μλ¬Ό μ κ²μνμ΅λλ€. λμ ν€λ‘ μμ±μ μ ν¨μ±μ κ²μ¬νλ μ’μ λ°©λ²μ μκ³ μλ μ¬λμ΄ μμΌλ©΄ μΈμ λ μ§ κ²μν΄ μ£ΌμΈμ.
λ΄μ₯ λ κ²½μ° λ€μκ³Ό κ°μ μ€ν€λ§λ₯Ό λ μ΄μμ ν μ μμ΅λλ€.
new Schema({
myDynamicKeyObj: {
type: Dynamic,
key: {type: String, match: /[a-z]*/i},
val: [String]
}
})
+1
λμ ν€κ° μμΌλ©΄ μ’μ κ²μ λλ€. json-schema λ₯Ό μμ±νλ €λ©΄ μλ₯Ό λ€μ΄ μ μ ν€λ₯Ό μΌμΉμν€κΈ° μν΄ λ€μκ³Ό κ°μ΄ ν μ μμ΅λλ€.
"^[0-9]+$": {
"$ref": "#/definitions/mydefinition"
}
λμ ν€κ° μκ±°λ μλ μ루μ
μ΄ μμ΅λκΉ?
2κ° κ°μ²΄μ μ:
{ 123: { firstname: "firstA", lastname: "lastA" } }
{ 124: { firstname: "firstB", lastname: "lastB" } }
κ°μ λ¬Έμ . mongodb λ¬Έμμ μ€λͺ λ λλ‘ λΆμμ μννκ³ μΆμ΅λλ€. http://docs.mongodb.org/ecosystem/use-cases/pre-aggregated-reports/
+1
:+1:
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
λλ μ΄κ²μ΄ μ°λ¬Όμ΄ νμνλ€
+1
μ¬λλ€μ λ°μνΈμ§ν¨μ λ³΄κ² λλ 무μλ―Έν +1μ μ€μ§νμΈμ.
"ꡬλ "κ³Ό "리μ‘μ " λ²νΌμ΄ μλ λ°μλ μ΄μ κ° μμ΅λλ€.
+1
@qqilihq , plxλ₯Ό ꡬνν λ€μ +1, kthxbyeλ₯Ό μ€μ§ν©λλ€.
"μ무λ κ·Έκ²μ νμλ‘ νμ§ μμλ€"
5λ
ν, μμ²λ +1μ΄ μ§λ¬μ§λ§ μ¬μ ν μ΄μ λν μ
λ°μ΄νΈκ° μμ΅λκΉ?
μ΄ λ¬Έμ μ κ΄λ ¨νμ¬ μ°Ύμ μ μλ κ°μ₯ μ€λλ λ¬Έμ μ΄λ―λ‘ κ°λ₯ν ν λ§μ μ¬λλ€μ΄ μ λ°μ΄νΈλ₯Ό μΆμ ν μ μλλ‘ μ΄ λ¬Έμ λ₯Ό λ€μ μ΄κ³ #1522λ₯Ό λ«κ² μ΅λλ€.
μ΄ κΈ°λ₯μ νμμ λλ€.
μ΄ κΈ°λ₯μ΄ μ΄λ»κ² κ·Έλ κ² μ‘°μ©ν μΆμλμ΄ λλ λͺ°λμκΉμ?! π―
@adamreisnz γ γ κ°μ¬ν©λλ€. Mongoose κΈ°λ₯ μ λ°μ΄νΈλ μ΄λμμ νμΈν©λκΉ? λ³κ²½ λ‘κ·Έ? νΈμν°?
μΌλ°μ μΌλ‘ Changelogμ΄μ§λ§ μ΄κ²μ λμ³€μ κ²μ λλ€!
κ°μ₯ μ μ©ν λκΈ
μ΄ κΈ°λ₯μ νμμ λλ€.