【问题标题】:Check if Object (document) exists in MongoDB (using Jongo)检查 MongoDB 中是否存在对象(文档)(使用 Jongo)
【发布时间】:2015-05-14 08:59:53
【问题描述】:

我正在尝试找出集合中是否存在对象(文档)。

这是我尝试过的,但我卡住了。

@DbTable(name = "websites")
private MongoCollection websitesTable;

private boolean isInTable(String url) {
    FindOne p = websitesTable.findOne("{url: #}", url);
    return false;
}

如果给定的url 已经在集合中,我该如何检查?任何帮助表示赞赏。

【问题讨论】:

  • user1924244,这不是帮助台。如果您无法从其他类似问题中获得帮助,那么这不是正确的地方。 SO适用于那些真正陷入实际问题的人,所以请不要规定人们应该做什么,不应该做什么。
  • @Jaques,你是谁告诉我什么是“真正的”问题,什么不是?
  • @user1924244,看看这个文档:Checking if a document exists – MongoDB slow findOne vs find。它推荐以下命令:db.collection.find({_id: "myId"}, {_id: 1}).limit(1)).
  • @aioobe 好吧,对于初学者来说,SO 由用户主持,其中包括 Jacques。值得一读的文档How do I ask a good question 建议首先进行研究。如果 OP 进行了适当的研究,那么编写问题将比自己解决“问题”更多。你可能会发现ESR 的优秀文章How To s The Smart Way 在这方面也很有趣。
  • @user1924244 所以你的根本问题是你不是一个Java程序员。保持专业并明确说明您无法以适当的方式满足该要求 - 这需要更长的时间,您会犯错误,并且整体代码质量很可能无法用于生产。

标签: java mongodb jongo


【解决方案1】:

试试这个:

return websitesTable.findOne("{url: #}", url)
                    .as(Map.class)
                    .iterator()
                    .hasNext();

【讨论】:

  • 我稍微改变了一下:Map website = websitesTable.findOne("{url: #}", url).as(Map.class); 然后return website == null ? false : true; 现在它工作了!我不知道它是否可以,但它可以正常工作。
  • 太棒了。请注意,返回可以简化为return website != null;
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多