Böyle tanımlanan bir Sözleşme sınıf var:Yay Verisi MongoDB: Belge başka bir belgeye yerleştirildiğinde benzersiz dizinlenmiş alanı nasıl yok sayar?
@Document
public class Contract {
@Id
private String id;
@Indexed(unique = true)
private String ref;
private String status = "pending";
// getter & setter & hashcode & equals & tostring...
}
ben zamanla sözleşme durumunu kaydetmek istiyoruz, bu yüzden böyle bir Sürüm sınıfını yarattı: Ben defalarca kaydetmeyi deneyin
@Document
public class Version {
@Id
private String id;
private Contract contract;
private Instant createdAt;
// getter & setter & hashcode & equals & tostring...
}
zaman içinde sürüm nesnesi, yinelenen anahtar özel durumum var. Bence, buradaki şikâyetçi olan sözleşmenin ref anahtarındaki yinelenen anahtar endeks.
Bu tür bir şeyi nasıl başarabilirim?
Sorununuzu kapalı gösterir biraz kod parçacığını verebilir misiniz? Modelinizi tanımlama şekliniz, Kişi nesnesi Sürüm 1 içinde yuvalandığından hiçbir istisna atılmamalıdır; bu, bir sürümdeki bir kişinin bir alt belgede "sürüm (ler)" e kaydedileceği anlamına gelir. "iletişim (ler)" koleksiyonu önemli olmamalıdır. –
Bundan daha fazla yazmadım. Yalnızca, üzerinde benzersiz bir dizin bulunan bir diğerine yerleştirilmiş iki nesne oluşturun ve aynı nesneyle aynı nesneyle iki nesneyi kaydetmeye çalışın ve yinelenen bir giriş istisnasına sahip olursunuz. –