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

luwak:mengisi luwak yang tidak memiliki ObjectId

Anda dapat menggunakan konsep Virtuals . Begini caranya:

Ubah file skema Anda sebagai berikut:

//---------------------------------------------------
const gameSchema = new mongoose.Schema({
  title: String,
  rating: { type: Number, min: 0, max: 100 },
  genres: [Number],//here you have an array of id of type Number as yours, no ref
});
const GenreSchema = new mongoose.Schema({
  id: { type: Number },
  name: String,
  description: String,
});

gameSchema.virtual("games", {
  ref: "Genres",//this is the model to populate
  localField: "id",//the field used to make the populate, it is the field that must match on the aimed  Genres model <- here is the trick you want!!!  
  foreignField: "genres",//the field to populate on Games model
  justOne: false,
});

 gameSchema.set("toObject", { virtuals: true });//if you are planning to use say console.log
 gameSchema.set("toJSON", { virtuals: true });//if you are planning to use say res.json

mongoose.model("Games", gameSchema);
mongoose.model("Genres", GenreSchema);
//-------------------------------------------------

Pada file yang Anda coba isi, letakkan ini di bagian deklarasi:

//-----------------------------------------------------
const Games = mongoose.model("Games", gameSchema);
//---------------------------------------------------

Last but not least, di mana Anda ingin mengisi:

//----------------------------------------------
Games.find({})
  .populate("games")
  .exec(function (error, games) {
   //with games you can use things like game.field1, it is actually an JSON object! Print out games and see the fieds for your self, select one and call it using the dot notation! 
    console.log(games);
  });
//---------------------------------------------

Saya telah menguji solusi ini pada masalah yang telah saya lakukan, hanya dimodifikasi agar sesuai dengan kebutuhan Anda, tolong beri tahu saya jika itu berfungsi di Anda; jika tidak, kita bisa mencari tahu bersama bagaimana menyesuaikan solusi saya untuk memenuhi kebutuhan Anda.

Beberapa referensi awal

  1. Mengisi model luwak dengan bidang yang bukan id



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dari mat-select save data ke database MongoDB

  2. Bagaimana cara mereferensikan skema lain dalam skema Mongoose saya?

  3. Bagaimana cara memasukkan data ke dalam koleksi mongodb menggunakan driver c# 2.0?

  4. Cara menyimpan bidang Tanggal sebagai ISODate() menggunakan jackson di MongoDb

  5. Pohon ekspresi tidak didukung di UpdateOneAsync