पसंदीदा इस तरह स्ट्रिंग की एक सरणी होनी चाहिए:favorites: [String]
कार्ट ऐरे के लिए हमारे पास दो मुख्य विकल्प हैं:
- हम कार्ट को
subdocuments
की एक सरणी के रूप में परिभाषित कर सकते हैं ।
const schema = new Schema({
email: { type: String, unique: true, required: true },
hash: { type: String, required: true },
createdDate: { type: Date, default: Date.now },
settings: {
favorites: [String],
cart: [
{
quantity: Number,
marketId: String
}
],
states: {
favorites: { type: Boolean, default: true },
search: { type: Boolean, default: false },
category: { type: Schema.Types.Mixed, default: false }
}
}
});
- या हम कार्ट को
schema types
की एक सरणी के रूप में घोषित कर सकते हैं ।
const schema = new Schema({
email: { type: String, unique: true, required: true },
hash: { type: String, required: true },
createdDate: { type: Date, default: Date.now },
settings: {
favorites: [String],
cart: [
new Schema({
quantity: Number,
marketId: String
})
],
states: {
favorites: { type: Boolean, default: true },
search: { type: Boolean, default: false },
category: { type: Schema.Types.Mixed, default: false }
}
}
});
उन दोनों के लिए, जब आप कोई दस्तावेज़ बनाते हैं, तो यह इस तरह दिखेगा, ध्यान दें कि नेवला ने कार्ड आइटम में _id फ़ील्ड जोड़ा है।
{
"settings": {
"states": {
"favorites": true,
"search": false,
"category": false
},
"favorites": [
"234",
"564",
"213",
"782"
],
"cart": [
{
"_id": "5e6cd0bd53feb32d50699b79",
"quantity": 5,
"marketId": "234"
},
{
"_id": "5e6cd0bd53feb32d50699b78",
"quantity": 2,
"marketId": "564"
},
{
"_id": "5e6cd0bd53feb32d50699b77",
"quantity": 7,
"marketId": "213"
},
{
"_id": "5e6cd0bd53feb32d50699b76",
"quantity": 3,
"marketId": "782"
}
]
},
"_id": "5e6cd0bd53feb32d50699b75",
"email": "[email protected]",
"hash": "hash...",
"createdDate": "2020-03-14T12:40:29.969Z",
"__v": 0,
"id": "5e6cd0bd53feb32d50699b75"
}
अगर आप _id
नहीं चाहते हैं कार्ट सरणी में फ़ील्ड, आप जोड़ सकते हैं _id: false
इस तरह कार्ट स्कीमा का विकल्प चुनें:
cart: [
new Schema(
{
quantity: Number,
marketId: String
},
{ _id: false }
)
],
यहां कुछ उपयोगी दस्तावेज़ दिए गए हैं: