如果Collection不存在,那么它不会抛出错误,为什么?



在java代码中,我使用聚合方法。like-mongoTemplate.aggregate(aggregation,Request.class, Response.class).getMappedResults();

和手动删除集合,并希望它在集合不存在时抛出错误,但上面的代码返回空值,不抛出任何错误,我们如何实现在集合不存在的情况下抛出错误,如果集合存在则返回响应。并不想分开来检查收藏是否存在。或者如果集合不存在,mongotemplate不会抛出错误

这是设计的,如果一个集合不存在,当你发送一个写请求时,这个集合将被创建(对于一个读操作,就像你的情况一样,它将只是一个无操作请求)。您也可以在shell中看到这种行为:

mongos> use new_db
switched to db new_db
mongos> show collections  # pay attention that db is empty so no collections   
mongos> db.testColl.insertOne({})
{
"acknowledged" : true,
"insertedId" : ObjectId("615a1792e987158566c7a4bf")
}
mongos> show collections  # pay attention that the collection has been created automatically
testColl  

相关内容

  • 没有找到相关文章

最新更新