Я использую 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? Заранее спасибо