1
我有兩個集合:persons
(百萬)和groups
。當創建一個group
我有一個rule
,這實際上是發現persons
的標準。現在,我想要做的是將groups
_id
添加到所有匹配的persons
。在MongoDB中標記集合
請求我的API:
POST /groups {
"rule": {"age": {"$gt": 18}},
"description": "persons above 18"
}
在我的MongoDB:
db.persons.find({"age": {"$gt": 18}})
現在我想的group
_id
添加到groups
陣列場中的每個匹配persons
,使我以後可以得到小組中的所有人。這可以直接在相同的查詢中完成嗎?
謝謝。我有一個簡短的跟進:在將查詢條件對象直接從API輸入傳遞給MongoDB時,是否存在任何(注入)風險? – jgroenen 2014-12-02 13:27:47
是的,另請參閱http://docs.mongodb.org/manual/faq/developers/#javascript上的MongoDB FAQ。你可以在查詢中使用'$ where',它允許任意的javascript執行。即使您設法過濾所有寫入語句,仍然可以使用一個荒謬低效的查詢(或者簡單地說是一個無限循環)來拖延您的系統,或者創建一個'$ where:true'子句,這將導致所有用戶的更新它使用(索引)數據洪泛數據庫,這也將淹沒系統。 – mnemosyn 2014-12-02 13:38:45