2017-04-11 65 views
1

當我嘗試添加索引到集合
<collection>.createIndex({ reaction: 1, team_id: 1 }, { unique: true })
我得到錯誤10088:無法索引並行數組。我不在集合中有任何數組。MongoDB是否存儲關於文檔屬性類型的任何信息?

當我用{$ type:'array'}搜索屬性時,我顯示零文件。
當我搜索{$ type:'string'}時,將返回所有文檔。

以前這些屬性是數組,但自從被轉換了。
mongodb存儲屬性類型信息的地方?

// Original document 
{ 
    "value" : 5, 
    "team_id" : ["T024F579X"], 
    "reaction" : ["star2"], 
} 

// new converted document 
{ 
    "value" : 5, 
    "team_id" : "T024F579X", 
    "reaction" : "star2", 
} 

mongod version: 3.2.11 (MMAPv1)
_id是在此集合

+1

請澄清何時/何/你是如何得到這個錯誤。 – deceze

+0

已更新!感謝您的反饋 –

+0

您還可以提供您的數據樣本嗎? – deceze

回答

0

唯一索引我認爲這裏的答案是:不,蒙戈不存儲類型信息。

原來我確實有一個帶有數組屬性的文檔。
問題出在$type如何工作。
team_id在"team_id" : ["T024F579X"],將被讀爲mongo的string

from the mongo docs

當施加到陣列,$類型的任何內部元件

意味着只有嵌套數組將被讀取爲array類型相匹配。

來查詢您的收藏中的任何現有top level陣列的有效方法是使用$sizeMongo $size docs

相關問題