2012-10-19 94 views
2

在SQL我可以用「狀態」虛擬場下面的SELECT語句:做貓鼬支持虛擬領域中選擇,如SQL

SELECT 
    CASE 
     WHEN field = 1 THEN 'sale' 
     ELSE 'none' 
    END as status 

是否像在貓鼬?

+0

MongoDB一般不這樣,我會認爲答案是否定的,除非貓鼬以某種方式實現它的客戶端。 – Sammaye

回答

1

是的。貓鼬模式支持虛擬。查看guide的架構部分。我想你可能想這樣的事情:

var salesSchema = new Schema({ 
    sale: Number 
}); 

salesSchema.virtual('status').get(function() { 
    if (this.sale === 1) { 
    return 'sale'; 
    } else { 
    return 'none'; 
    } 
}); 
+0

儘管這實際上是模式上的存儲字段,它不是嗎? SQL版本允許您在查詢中即時創建從其他字段值派生的虛擬字段。 – Sammaye

+1

它沒有存儲到數據庫,這就是爲什麼他們稱之爲虛擬。 :) –

+0

啊好吧我現在看到它,雖然我堅持我的第一個評論,你不能在查詢中使用該字段,如:'選擇字段+ fieldb作爲fieldc其中fieldc = 1'我有一個討厭的感覺,會去成爲他的下一個問題:) – Sammaye