Belgem her erişildiğinde views
sayımını 1 arttırmak istiyorum. Şimdiye kadar, benim kodudur:
Document
.find({})
.sort('date', -1)
.limit(limit)
.exec();
Nerede $inc
buraya uygun mu?
Belgem her erişildiğinde views
sayımını 1 arttırmak istiyorum. Şimdiye kadar, benim kodudur:
Document
.find({})
.sort('date', -1)
.limit(limit)
.exec();
Nerede $inc
buraya uygun mu?
mongoose kullanılan ancak hızla sizin için çalışacaktır böyle görünüyor dokümanlar here üzerinde seyir asla:
# create query conditions and update variables
var conditions = { },
update = { $inc: { views: 1 }};
# update documents matching condition
Model.update(conditions, update).limit(limit).sort('date', -1).exec();
alkış ve iyi şanslar!
Başka bir soruna rastladım. Bu, $ inc ile ilgili bir tür. Bu yüzden başka birisine yardımcı olabileceğinden onu buraya göndereceğim. Aşağıdaki kod var:
var Schema = require('models/schema.js');
var exports = module.exports = {};
exports.increase = function(id, key, amount, callback){
Schema.findByIdAndUpdate(id, { $inc: { key: amount }}, function(err, data){
//error handling
}
}
farklı modülden ben Ancak
var saver = require('./saver.js');
saver.increase('555f49f1f9e81ecaf14f4748', 'counter', 1, function(err,data){
//error handling
}
gibi bir şey çağırır, bu istenen sayacı artırmak olmaz. Görünüşe göre, anahtarı doğrudan güncelleme nesnesine iletmesine izin verilmiyor. Bu, nesne alanı adlarındaki dize değişmezleri için sözdizimi ile ilgili bir şey vardır. Çözüm şu şekilde güncelleme nesnesini tanımlamaktı:
exports.increase = function(id, key, amount, callback){
var update = {};
update['$inc'] = {};
update['$inc'][key] = amount;
Schema.findByIdAndUpdate(id, update, function(err, data){
//error handling
}
}
Kodunuzun ilk sürümündeki hata şudur: '{$ inc: {key: amount}}'. Aslında oradaki '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' dır. Bu kodu yazmanın doğru yolu, [ES2015 hesaplanan özellik tuşları] 'nı kullanarak {$ inc: {[key]: amount}} 'dır (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/operatörler/Object_initializer). – Joseph
Bu size yardımcı oldu mu? Bana haber vermezsen. –