Если коллекция не существует, то она не выдает ошибку, почему?

#java #mongodb #spring-boot #mongodb-query #spring-data

Вопрос:

в коде Java я использую метод агрегации. Нравится- mongoTemplate.aggregate(aggregation,Request.class, Response.class).getMappedResults();

и вручную я удаляю коллекцию и хочу, чтобы она выдавала ошибку, когда коллекция не существует, но с приведенным выше кодом возвращает нулевое значение и не выдает никаких ошибок, как мы можем добиться, чтобы выдавать ошибку в случае, если коллекция не существует, и возвращать ответ, если коллекция существует. и не хочу разделяться, чтобы проверить, существует коллекция или нет. или mongotemplate не выдает ошибку, если коллекция не существует

Ответ №1:

это по замыслу, если коллекция не существует, когда вы отправите запрос на запись, эта коллекция будет создана (для операции чтения, как в вашем случае, это будет просто запрос без операции). Вы также можете увидеть это поведение в оболочке:

 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