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

MongoError operator tingkat atas yang tidak diketahui:$set

Masalahnya adalah Anda menggunakan sintaks untuk metode pembaruan yang salah . Anda harus menggunakan metode ini sintaks, dengan asumsi bahwa scores adalah sebuah dokumen.

return scores.updateQ({
    $set: { "partId": partId, "activityId": activityId},
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

Juga, di Mongoose, ia menggunakan $set secara default, jadi ini harus setara:

return scores.updateQ({
    partId: partId,
    activityId: activityId,
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

EDIT:

Asumsi saya adalah bahwa scores adalah dokumen (contoh dari Model):

var schema = new Schema({});
var Scores = mongoose.model('Scores', schema);
var scores = new Scores({});

Keduanya Scores.update dan scores.update ada, tetapi sintaksnya berbeda, yang mungkin menyebabkan kesalahan Anda. Inilah perbedaannya:

// Generic update
Scores.update({ _id: id }, { prop: 'value' }, callback);

// Designed to update scores specifically
scores.update({ prop: 'value' }, callback);

CATATAN:

Jika asumsi ini tidak benar, sertakan lebih banyak konteks dalam jawaban Anda, seperti bagaimana Anda sampai di sana.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat merusak properti `pengguna` dari 'tidak terdefinisi' atau 'null'

  2. Cara Memeriksa Apakah Indeks Tersembunyi di MongoDB

  3. MongoDB:Bagaimana cara memperbarui satu subelemen dalam array, yang direferensikan oleh indeks di dalam array?

  4. Sebelum $unwind periksa apakah sub dokumen tidak kosong

  5. MongoDB:Keberadaan kunci bersarang