如何使用Mongodb和JAVA检查文档是否存在?
我创建了一个简单的java应用程序作为我的大学迷你项目,其中一个模块允许用户执行插入、删除、更新和搜索等操作 出于验证目的,如果用户试图删除数据库中不存在的记录,我希望a向用户显示一条错误消息 “抱歉,找不到记录”我尝试了catch块来检查mongodb是否会抛出异常,如果文档找不到,但该功能有效。。。我对JAVA和Mongodb都是全新的,所以我对它一无所知,有人能帮我一下吗。。。 这是我的删除操作执行的代码和我尝试的代码如何使用Mongodb和JAVA检查文档是否存在?,java,mongodb,Java,Mongodb,我创建了一个简单的java应用程序作为我的大学迷你项目,其中一个模块允许用户执行插入、删除、更新和搜索等操作 出于验证目的,如果用户试图删除数据库中不存在的记录,我希望a向用户显示一条错误消息 “抱歉,找不到记录”我尝试了catch块来检查mongodb是否会抛出异常,如果文档找不到,但该功能有效。。。我对JAVA和Mongodb都是全新的,所以我对它一无所知,有人能帮我一下吗。。。 这是我的删除操作执行的代码和我尝试的代码 private void deleteActionPerformed
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {
try
{
DBCollection col=db.getCollection("activity"); //my collection name is activity
if(!Tid.getText().equals("")) //Tid is the TextField in which i am taking input of _id
{
col.remove(new BasicDBObject().append("_id",(Object)Tid.getText()));
}
else
JOptionPane.showMessageDialog(null,"Please Enter the ID");
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Record not Found "+e);
}
}
作为java或mongodb使用的try-catch块dint未生成找不到的类型异常 这可能不是最有效的方法,但应该有效。 我根据我的一些代码对其进行了修改,以查找特定的文档值(而不是_id)。对于_id,可能有专门的方法
/**
* Checks if an activity exists with a given id. if no such activity exists
* returns false. Returns true for one or more activities with a matching
* id.
*
* @param db
* @param id
* @return boolean - true if one or more functions with matching names exit.
*/
public static boolean activityExists(MongoDatabase db, ObjectId id) {
FindIterable<Document> iterable = db.getCollection("activity").find(new Document("_id", id));
return iterable.first() != null;
}
/**
*检查是否存在具有给定id的活动。如果不存在此类活动
*返回false。对于一个或多个具有匹配项的活动,返回true
*身份证。
*
*@param-db
*@param-id
*@return boolean-如果一个或多个具有匹配名称的函数退出,则为true。
*/
公共静态布尔活动存在(MongoDatabase db,ObjectId){
FindIterable iterable=db.getCollection(“活动”).find(新文档(“_id”,id));
返回iterable.first()!=null;
}
编辑:似乎最好使用计数方法。请参考以下答案 在您的情况下,使用find()+limit()要快得多,因为findOne()将始终读取并返回文档(如果存在)。find()只返回一个游标(或不返回),并且仅在遍历游标时读取数据 因此,不是: findOne({u id:myId},{u id:1}) 你应使用:
db.collection.find({u-id:“myId”},{u-id:1}).limit(1)以及如何检查是否找到了某些内容?