13
我想查詢使用春天的mongodb。我們有一個包含樹的集合,並且包含一個項目列表作爲樹路徑(因此我們可以輕鬆遍歷樹)。我們有一個查詢需要返回特定節點的所有子節點。我們的查詢是基於選擇路徑中具有節點(父級)並且比父級(級別)低一級的所有節點。我們的標準如下:春季Mongo標準查詢兩次相同的字段
Criteria.where("treePath").in(parentId).and("treePath").size(level)
唉,當我們把這種在MongoDB中,我們得到以下異常:
org.springframework.data.mongodb.InvalidMongoDbApiUsageException:由於 到COM的侷限性.mongodb.BasicDBObject,不能添加 指定爲'treePath:{「$ size」:2}''的第二個'treePath'表達式。 標準已包含'treePath:{「$ in」:[ 「50137df5f49f9b4a6481d639」]}'。
是否還有其他建議如何實現?我想到的一個選擇是直接查詢mongodb。我試過
String command = "{findAndModify:\"Task\",query:{$and:[{treePath:\"5013a79a36600872ecf4dba8\"},{treePath:{$size:2}},{order:{$gte:0}}]},update:{$inc:{order:1}}}";
CommandResult commandResult = mongoTemplate.executeCommand(command);
但是這隻會更新第一條記錄,我需要它們全部更新。
謝謝!
的感謝!非常棒! – checklist 2012-07-28 17:09:49
使用orOperator,你也可以查詢同一個字段的不同值,如果這是你需要做的。 – hypercube 2017-04-14 18:08:32