MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

model luwak, array string, array struktur objek

Favorit harus berupa larik String seperti ini:favorites: [String]

Untuk cart array kita memiliki dua pilihan utama:

  1. Kita dapat mendefinisikan cart sebagai larik 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. Atau kita dapat mendeklarasikan keranjang sebagai larik 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 }
    }
  }
});

Untuk keduanya, ketika Anda membuat dokumen, akan terlihat seperti ini, perhatikan bahwa luwak menambahkan bidang _id di item kartu.

{
    "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"
}

Jika Anda tidak ingin _id bidang dalam array keranjang, Anda dapat menambahkan _id: false pilih skema cart seperti ini:

    cart: [
      new Schema(
        {
          quantity: Number,
          marketId: String
        },
        { _id: false }
      )
    ],

Berikut beberapa dokumen yang berguna:

Array

Subdokumen




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memasukkan objek momentjs di Meteor Collection

  2. Cara Mengurutkan hasil kueri mongodb berdasarkan subdokumen

  3. Hitungan berbeda dari beberapa bidang menggunakan agregasi mongodb

  4. strategi indeks mongodb untuk kueri rentang dengan bidang yang berbeda

  5. Bagaimana memproyeksikan DBRef pada Agregasi Spring MongoDB?