下面列出了com.mongodb.BasicDBList#contains ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void updateIgnoredTag(final BasicDBObject documentToUpdate, final String tagName) {
final BasicDBList tags = (BasicDBList) documentToUpdate.get("tags");
if (tags.contains(tagName)) {
tags.remove(tagName);
} else {
tags.add(tagName);
}
}
@PUT
@Path("/feature/{product}/{major}.{minor}.{servicePack}/{build}/{id:.+}")
@Produces(MediaType.APPLICATION_JSON)
public Response addFeatureToRecents(@QueryParam("name") final String featureName,
@BeanParam final Coordinates coordinates,
@PathParam("id") final String featureID) {
final BasicDBObject featureDetails = new BasicDBObject("name", featureName);
featureDetails.put("product", coordinates.getProduct());
featureDetails.put("version", coordinates.getVersionString());
featureDetails.put("build", coordinates.getBuild());
featureDetails.put("id", featureID);
final DBCollection collection = this.mongoLegacyDb.getCollection("users");
final BasicDBObject user = new BasicDBObject();
user.put("user_id", LoggedInUserUtil.getLoggedInUser().getUserId());
final DBObject blank = new BasicDBObject();
final DBObject doc = collection.findAndModify(user, blank, blank, false, new BasicDBObject("$set", user), true, true);
if (doc.containsField("recentFeatures")) {
final BasicDBList featureArray = (BasicDBList) doc.get("recentFeatures");
if (featureArray.contains(featureDetails)) {
featureArray.remove(featureDetails);
featureArray.add(featureDetails);
collection.update(user, new BasicDBObject("$set", new BasicDBObject("recentFeatures", featureArray)));
} else {
if (featureArray.size() >= 5) {
collection.update(user, new BasicDBObject("$pop", new BasicDBObject("recentFeatures", "-1")));
}
collection.update(user, new BasicDBObject("$addToSet", new BasicDBObject("recentFeatures", featureDetails)));
}
} else {
collection.update(user, new BasicDBObject("$addToSet", new BasicDBObject("recentFeatures", featureDetails)));
}
return Response.ok().build();
}
@PUT
@Path("/build/{product}/{major}.{minor}.{servicePack}/{build}")
@Produces(MediaType.APPLICATION_JSON)
public Response addBuildToRecents(@BeanParam final Coordinates coordinates) {
final DBObject buildCoords = coordinates.getReportCoordinates();
final DBCollection collection = this.mongoLegacyDb.getCollection("users");
final BasicDBObject user = new BasicDBObject();
user.put("user_id", LoggedInUserUtil.getLoggedInUser().getUserId());
final DBObject blank = new BasicDBObject();
final DBObject doc = collection.findAndModify(user, blank, blank, false, new BasicDBObject("$set", user), true, true);
if (doc.containsField("recentBuilds")) {
final BasicDBList buildArray = (BasicDBList) doc.get("recentBuilds");
if (buildArray.contains(buildCoords)) {
// BasicDBObject toMove = (BasicDBObject) featureArray.get(featureArray.indexOf(featureDetails));
buildArray.remove(buildCoords);
buildArray.add(buildCoords);
collection.update(user, new BasicDBObject("$set", new BasicDBObject("recentBuilds", buildArray)));
} else {
if (buildArray.size() >= 5) {
collection.update(user, new BasicDBObject("$pop", new BasicDBObject("recentBuilds", "-1")));
}
collection.update(user, new BasicDBObject("$addToSet", new BasicDBObject("recentBuilds", buildCoords)));
}
} else {
collection.update(user, new BasicDBObject("$addToSet", new BasicDBObject("recentBuilds", buildCoords)));
}
return Response.ok().build();
}