使用ObjectId的字符串表示来搜索mongo文档

时间:2014-02-06 16:05:56

标签: java mongodb morphia

我试图使用Morphia从java类中使用其id(ObjectId)的字符串表示来返回文档。我怎样才能做到这一点?以下代码片段说明了问题......

    @Override
public List<SmsReply> getReplies() {
    List<SmsReply> replies = smsProvider.getSmsReplies();
    for(SmsReply reply: replies){
        System.out.println(reply);
        Sms sms = datastore.find(Sms.class, "_id", reply.getExternalMessageId()).get();
        sms.getSmsReplies().add(reply);
        datastore.save(sms);
    }

    return smsProvider.getSmsReplies();
}

SmsReply类具有需要查找的Sms文档的ObjectId(externalMessageId)的字符串表示。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果_id是mongo中的ObjectId,则可以使用ObjectId上的String构造函数创建ObjectId实例java:new ObjectId(reply.getExternalMessageId())