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

luwak tidak dapat mengisi menggunakan tipe String

Saat ini, hanya ObjectId nilai yang mengacu pada _id koleksi lain dapat digunakan sebagai refs .

Berikut adalah satu diskusi https://github.com/Automattic/mongoose/issues/2562

Namun, ini bisa menjadi salah satu peningkatan di masa depan.

Sebenarnya, tidak perlu menambahkan default nilai untuk populate bidang, cukup tentukan fooAccessType seperti di bawah ini

fooAccessType: {
    type: String, 
    ref: 'AccessType'
},  

Untuk population

FacilityPersonnel.findOne({_id:req.params.id})
    .populate('fooAccessType')
    .exec(

ObjectID digunakan dalam population , dan ObjectId adalah tipe BSON 12-byte, dibuat menggunakan:

Jadi SuperAdmin bukan satu ObjectID yang benar . Anda dapat menggunakan UUID sebagai nilai default ObjectID

var uuid = require('node-uuid');

// ...
fooAccessType: {
    type: String, 
    default: uuid.v1, 
    ref: 'AccessType'
},  

Namun, kode di atas aneh, fooAccesType adalah referensi ke AccessType dokumen.

Saat mencoba menyimpan field dokumen, AccessType harus disimpan terlebih dahulu, lalu dapatkan ObjectID dari AccessType yang disimpan ini dan tetapkan ke fooAccessType , akhirnya, simpan field yang baru dokumen.

var access = new AccessType({});
access.save(function(err){
   if (err)
      // error handling
   else {
       facilityperson.fooAccessType = access._id;
       facilityperson.save(function(err) {

       });
   }
});

Untuk population

FacilityPersonnel.findOne({_id:req.params.id})
    .populate('fooAccessType')
    .exec(


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak Mencoba membuka koneksi yang tidak tertutup

  2. bagaimana cara membuat serial kelas?

  3. Filter Luwak berdasarkan Kunci Tanggal Dinamis dengan nilai

  4. cara menambahkan Bidang baru ke dalam skema solr

  5. MomentJS tidak mengonversi tanggal dengan benar