Ben Bir hesaplanmış alanı bir MongoDB sorgusundan döndürmek mümkün mü? SQL
SELECT myNum, (myNum+1) as `increment` FROM myTable
etkili bir keyfi matematik ve diğer fonksiyonlar yapıyor ve sonuçta bir alan olarak bu döndürme gibi bir şey yapabiliriz. MongoDB ile aynı şey yapılabilir mi?
db.test.find({}, {_id:1, myNum:1, increment:function() { return this.myNum + 1;}});
Beklediğim gibi bir "artış" alanı döndürmez.
Bu konuyla ilgili bulabildiğim diğer tüm sorular, GROUPed sorguları ile ilgilidir; Sadece getirildiğinde belgeye "sanal" alan ekliyorum (istemci tarafı hesaplanıyor mu?). Alternatif olarak, bu sorun bir "azaltma" olmaksızın bir "harita" gibi görünmektedir; her satırın kendi hesaplanan alanı vardır. Bir harita işlevinin sonucunu sonuç/imleç olarak döndürmenin herhangi bir yolu var mı?
Eh umut verici görünüyor:
İşte yeni
myNum
alana_id
s artan senin örneğidir. Her ne kadar dokümantasyon 2.1 versiyonunu bu özellik ile ilk versiyon olarak listeler, 2.2 değil. Maalesef '$ count' fonksiyonuna sahip değildir; benim gerçek dünyam için, bir alt belge dizisi üzerinde bir sayı yapmalıyım. Bu ve Fedora 16 reposunun sadece şu anda 2.0 var, bu yüzden bu istemci tarafı – MidnightLightning@MidnightLightning'i yapmak zorunda kalabilirim: toplama çerçevesinin ilk olarak 2.1.x geliştirme sürümlerinde göründüğü doğrudur. 2.2.0 bu özellik ile kararlı/üretim sürümü olacak. 2.2.0rc0, Temmuz ortasından beri [mongodb.org/downloads](http://www.mongodb.org/downloads] adresinden edinilebilir. Haritanın/tekil bir belgeden hesaplanan bir alan örneğinize ulaşamazsınız, çünkü harita belirli bir anahtar için birden fazla belge yaymadıkça küçült() işlevi çağrılmaz. – Stennie
@MidnightLightning: [MongoDB 2.2.0 üretim sürümü] 'nin (http://docs.mongodb.org/manual/release-notes/2.2/) Ağustos 2012'den beri kullanıma sunulduğuna dikkat edin. – Stennie