MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला मॉडल, स्ट्रिंग्स की सरणी, ऑब्जेक्ट संरचना की सरणी

पसंदीदा इस तरह स्ट्रिंग की एक सरणी होनी चाहिए:favorites: [String]

कार्ट ऐरे के लिए हमारे पास दो मुख्य विकल्प हैं:

  1. हम कार्ट को 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 }
    }
  }
});
  1. या हम कार्ट को 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 }
      )
    ],

यहां कुछ उपयोगी दस्तावेज़ दिए गए हैं:

Arrays

उपदस्तावेज़




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. लोचदार बीनस्टॉक पर मोंगोडब स्थापित करने का अनुशंसित तरीका

  2. Meteor.user() के विशिष्ट उप-समूह के लिए उल्का प्रतिक्रियाशील बनाएं

  3. नेवला का उपयोग करके मोंगो ऑब्जेक्ट के लिए फ़ील्ड को खाली के रूप में सेट करें

  4. (पाल जेएस) वॉटरलाइन के माध्यम से मोंगोडब डेटाबेस की सरणी में मूल्यों को पुश करें

  5. उप-दस्तावेज़ फ़ील्ड के लिए स्प्रिंग डेटा मोंगोडब क्वेरी