2013-03-08 68 views
0

第一次使用mongodb。 我在服務器端使用node.js和mongojs。有點困惑。 db.save的逆轉是找到了,我希望能夠做類似的東西:MongoDB保存集合類型 - 另一種方式?

db.furni.find(db.furni_types.chair, db.furni_types.chair.plastic); 

當前設置:

// Chair types 
db.furni_types.save({ type: "chair", material: "wood" }); 
db.furni_types.save({ type: "chair", material: "plastic" }); 
db.furni_types.save({ type: "chair", material: "beanbag" }); 

// other furni types 
db.furni_types.save({ type: "bed", material: "silk" }); 
db.furni_types.save({ type: "table", effect: "glass" }); 


db.furni.save({id: "13626450", name: "ComfyMan", type: "chair", material: "wood", description: "The most comfortable chair in extistence."}); 

幾個問題:

上午我去正確的方式或什麼?

在db.furni.save(type:「chair」,material:「wood」)中找到的數組是否足夠,如果我想稍後使用它們作爲對象?

如果我想要做這樣的事情:

db.furni.save(name: "Super Comfort", db.furni_types.chair, db.furni_types.chair.wood); 

將在上述工作?

+0

db.furni.find(type:「chair」,material:「plastic」)''有什麼問題? – 2013-03-08 20:23:45

回答

1

這絕對不是正確的方法......首先,它非常適合RDBMS的思維方式(關係數據庫...)。其次,如果你希望能夠做這樣的事情:

db.furni.find(db.furni_types.chair, db.furni_types.chair.plastic); 

那麼這純粹是:

db.furni.find({type: "chair", material:"plastic"}); 

注意什麼要傳遞到發現是一個對象,所以你不能指望以逗號分隔格式傳遞字符串或其他變量的東西,更不用說認爲您可以通過這種方式引用您的類型模型(db.furni_types!=數據庫中數據的直接訪問者,它是您擁有的接口到「找」)。

所以,只要看看你發佈的內容和我的建議,你也會看到,如果你必須在兩者中都鍵入「椅子」,而不管兩者是什麼,你期望從你的提出的方法?

+0

現在你完全瞭解我的想法。我想我只是想着想一想項目的未來。將來,我想根據一定的標準來做事。另一件事是,我沒有真正分離數據庫的東西和JavaScript的東西。這兩個人彼此非常密切地工作,但沒有那麼接近。 – 2013-03-09 04:50:59

+0

@LeviRoberts - 如果你還沒有看過它,你可能還會喜歡貓鼬。它將爲諸如嵌入和鏈接文檔之類的東西提供大量語法糖,並可能提供更多您似乎在尋找的語法糖。 – 2013-03-09 20:17:01

+0

謝謝尼克!我確實看了一下貓鼬。關於我的頭頂,我不記得我爲什麼不選擇它。我確實相信這是因爲學習曲線。使用mongojs之後,我發現它更像mongo客戶端命令,因此很容易找到。 – 2013-03-10 04:32:23

相關問題