2015-09-12 83 views
1
"FinalizeFunction" : null, 
"FilterDefinition" : { 
    "hour" : NumberInt(7), 
    "hostname" : { 
     "$exists" : true 
    } 
}, 
"SortDefinition" : { 
    "hostname" : NumberInt(1) 
} 

我想這個文件到MongoDB的集合添加,但我得到以下錯誤:

Document field names can't start with '$' (Bad Key: '$exists') 

其實,我想用這個文件生成地圖 - 在代碼端減少功能。所以我需要像這樣的FilterDefinition的BsonDocument。

+0

你爲什麼需要在該字段名稱的$?你不能從你的程序中刪除它嗎? – Sammaye

+0

我需要此字段在C#中進行篩選。 '$'是mongo中運算符定義的特殊字符。 –

+0

是的,這就是您無法保存文檔的原因。有沒有辦法這 – Sammaye

回答

2

不幸的是,您不能使用$符號提交一個提交的名稱。這裏是對文檔的一些限制

  • 字段名稱_id被保留用作主鍵;它的值 在集合中必須是唯一的,是不可變的,並且可能是除數組之外的任何其他 類型。

  • 字段名稱不能以美元符號($)字符開頭。

  • 字段名稱不能包含點(。)字符。

  • 字段名稱不能包含空字符。

http://docs.mongodb.org/manual/core/document/

+0

感謝您回答Rohit。我解決了它保留BsonDocument作爲字符串。 –