我想用mongodb創建一個簡單的文件系統實現。MongoDB數組索引
考慮架構,
FSSchema = new mongoose.Schema({
fname : String,
path : [String],
content : Schema.Types.Mixed,
user : {
type : Schema.ObjectId,
ref : 'User'
}
})
// Create compount index
FSSchema.index({ path : 1 , fname : 1 } , { unique : true })
mongoose.model('Data', DataSchema)
但是我的單元測試創建了兩個不同的條目
user1 = new Data({ fname : 'name'}, path: ['fld1','fld2']})
user1 = new Data({ fname : 'name'}, path: ['fld1','fld3']})
分別應該是指 'FLD1/FLD2 /名稱' 和「FLD1/fld3 /時失敗名稱'。失敗是因爲顯然只有'name'和'fld1'在索引中被使用。
我該如何去創建這樣一個複合索引?
注意:我知道顯而易見的解決方案是將路徑作爲帶有文件分隔符(如'/')的單個字符串。只是想知道是否可以在索引中使用字符串數組。
你可以添加你的查詢嗎? – idbentley
我實際上在模式中有更多的字段,即用戶字段(我將編輯問題以反映這一點)。我想獲取特定用戶的所有數據對象,然後使用該路徑在客戶端構建一棵樹。所以我的查詢就像Data.find({user:user._id}) – Joe
它看起來像你不能在數據庫中。看看這個問題的答案:http://stackoverflow.com/questions/4435637。 – idbentley