将mongo shell查询转换为QueryDBObject并使用spring mongotemplate执行

时间:2015-08-22 21:27:36

标签: java mongodb spring-mongo

以下是我能够在我的mongo shell上正确执行的查询。

200 OK

我需要使用Java程序/ Mongo Spring模板执行相同的操作。 有人可以帮我告诉我怎么做吗?

1 个答案:

答案 0 :(得分:0)

您的查询可能与此类似:

UpdateResult updateResult = collection.updateOne(eq("_id", 123),
      new Document("$pull", new Document("scores",
          new Document("type", "homework"))
      )
);

Here您已获得整个界面和特定版本的updateOne的文档。

您还需要与数据库建立连接,因此您可能需要关注this quick tour才能完成此操作。

修改

对于使用spring mongo做同样的事情,你可以这样做(正如the docs中记载的那样):

import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query;
import static org.springframework.data.mongodb.core.query.Update;

...

WriteResult wr = mongoTemplate.updateFirst(new Query(where("accounts.accountType").is(Account.Type.SAVINGS)),
  new Update().pull("students.$.scores", new Document("type", "homework")), Account.class);

PS:这个答案可能不会按原样运作,它只是一个例子,如果你想要更好的帮助,可以提供更大的代码片段。