JavaSpringMongoDB删除

JavaSpringMongoDB删除,java,spring,mongodb,Java,Spring,Mongodb,我正在使用JavaSpringMongoDBAPI。当我使用MongoTemplate并尝试删除对象时,它不会删除。我使用的是Spring 3.0.6.REALEASE。我的代码如下所示: beans.xml <mongo:mongo host=“localhost“ port=“27017“/> <mongo:db-factory dbname=“database5“ mongo-ref=“mongo“/> <bean id=“mongoTemplate“ c

我正在使用JavaSpringMongoDBAPI。当我使用MongoTemplate并尝试删除对象时,它不会删除。我使用的是Spring 3.0.6.REALEASE。我的代码如下所示:

beans.xml

<mongo:mongo host=“localhost“ port=“27017“/>

<mongo:db-factory dbname=“database5“ mongo-ref=“mongo“/>

<bean id=“mongoTemplate“ class=“org.springframework.data.mongodb.core.MongoTemplate“>
<constructor-arg name=“mongoDbFactory“ ref=“mongoDbFactory“/>
</bean>

@Document
public class Student {

@Id
private String id;
@Field
private int age;

public Student(int age) {
    this.age = age;
}

// getters and setters
}
其中Id是一个已填写的Id


没有异常,但在查找此Id时它仍然存在。

请尝试指定集合名称:

mongoTemplate.remove(student, "student");
或者,您也可以尝试使用查询将其删除:

mongoTemplate.remove(new Query(Criteria.where("id").is(student.getId())), Student.class);
另外,要获取有关正在发生的情况的更多信息,请使用getLastError:

System.out.println(mongoTemplate.getDb().getLastError());
如果删除对象,您将看到n:1,如下所示:

{ "serverUsed" : "vmd-eumongoacct-002/172.20.15.15:27017" , **"n" : 1** , "lastOp" : { "$ts" : 1365111932 , "$inc" : 1} , "connectionId" : 305018 , "err" :  null  , "ok" : 1.0}
试着跟随

1) 确保仅使用来自spring数据的注释类。因为,您没有提供完整的代码,所以我看不到您的导入

import org.springframework.data.annotation.Id
import org.springframework.data.mongodb.core.mapping.Document
2) 尝试先保存对象,然后删除同一对象。如果这个测试有效,那么删除也会有效

mongoTemplate.save(userObj);
System.out.println("saved user id:"+userObj.getId());
mongoTemplate.remove(userObj);

实际删除的代码在哪里?能否提供执行删除的实际代码?以及删除失败的原因?你只是没有收到错误,文档保持不变,还是收到了错误,或者其他什么?@RajivJain你解决了问题吗?请参见上面的编辑。MongoDB中仍然没有异常,因为我可以通过JavaSpring代码找到这一点。
mongoTemplate.save(userObj);
System.out.println("saved user id:"+userObj.getId());
mongoTemplate.remove(userObj);