Получение upsertedId из mongodb с помощью spring-boot - PullRequest
0 голосов
/ 11 апреля 2020

Я использую mongodb и spring-boot. Я пытаюсь получить upsertId после вставки нового документа.

Мой Класс катушки указан ниже.

@Document(collection = "reel")
@Data
public class Reel extends Auditing {

    @Id
    private ObjectId _id;
    private String name;

    List<Category> category;
}

Категория является встроенный документ, поэтому я не аннотировал @Document

@Data
public class Category {

    @Id
    private ObjectId _id=new ObjectId;
    private String name;
}

Здесь я создал внешне @Id private ObjectId _id=new ObjectId;, поскольку @Id private ObjectId _id; не создает никаких _id во встроенном документе. Это правильно?

Когда я пытаюсь выполнить переход, он изменяет или вставляет документ, но upsertId : null.

Я обновляю документ как

public UpdateResult addCategoryToReel(ObjectId reelId, String categoryName) {
    Category category=new Category();
    category.setName(categoryName);

    Query query=new Query().addCriteria(Criteria.where("_id").is(reelId));
    Update update=new Update().push("category").value(category);

    return mongoTemplate.upsert(query,update, Reel.class);
}

, и в результате получается ,

{
    "matchedCount": 1,
    "modifiedCount": 1,
    "upsertedId": null,
    "modifiedCountAvailable": true
}

Как я могу получить upsertedId? Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...