sarebbe possibile per un ObjectId in ModelA per fare riferimento a un sub-documento in modelB?mangusta - ObjectId che fa riferimento a un sub-documento
risposta
Sì, è possibile, ma sono disponibili alcune opzioni.
Opzione 1: C come un documento secondario
Se davvero si vuole utilizzare documenti secondari, non è necessario creare un modello separato. È necessario modificare il riferimento alla matrice 'c'.
var C = new Schema({...});
var B = new Schema({c: [C]});
var A = new Schema({c: { type: ObjectId, ref: 'ModelB.c' });
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
Opzione 2: C come modello
(Vi presento solo questo come un'alternativa - dal momento che il vostro esempio sembra ridondante poiché si crea 'C' come un modello separato, nonché un documento secondario)
In alternativa, può essere utile disporre di raccolte separate, è possibile creare un modello di mangusta per ciascuna. Ognuno sarà una raccolta differenziata:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
In questo caso si consiglia di fare riferimento direttamente ogni modello:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
The Point
Sì, è possibile, ma si è necessario selezionare se si desidera C come modello o documento secondario.
- 1. script fsx che fa riferimento a una dll che fa riferimento a molte dll
- 2. Riferimento circolare con mangusta
- 3. PostGIS Installazione homebrew che fa riferimento a un percorso precedente?
- 4. rimuovere il commit cancellato che fa riferimento a un problema
- 5. vostro WSGIPath fa riferimento a un file che non esiste
- 6. Riferimento che non fa riferimento ovunque?
- 7. Mangusta: I confronti ObjectId falliscono in modo incoerente
- 8. ObjectId in simpleSchema o collection2
- 9. A cosa fa riferimento WheelEvent.deltaZ?
- 10. Cosa fa epoll con un descrittore di file che fa riferimento a una directory?
- 11. v8 :: FunctionTemplate che fa riferimento a una variabile non globale
- 12. Java Enum che fa riferimento a un'altra enumerazione
- 13. @ConfigurationProperties che fa riferimento a proprietà che fanno riferimento ad altre proprietà
- 14. Pulsante che fa riferimento a riga errata in ex
- 15. jquery che fa riferimento a più elementi in una riga
- 16. Rimuovere un ObjectId da un array di objectId
- 17. Violazione del vincolo univoco Oracle che fa riferimento a un vincolo che non sembra esistere
- 18. Perché a volte (a volte) devo fare riferimento agli assiemi a cui fa riferimento l'assieme riferimento?
- 19. Perché non riesco a compilare un file che fa riferimento a jquery.d.ts?
- 20. Quale questione fa "riferimento a" risolvere
- 21. Quando un oggetto ottiene un objectID che non è temporaneo?
- 22. Hibernate @ManyToOne fa riferimento a un'entità sconosciuta
- 23. Il riferimento di conteggio riferimenti Z3_ast fa riferimento a Z3?
- 24. In Java, cosa fa un riferimento a Class.class?
- 25. GC non raccoglie quando WeakReference fa riferimento a un delegato?
- 26. JavaFX, ottenere l'oggetto a cui fa riferimento un TableCell
- 27. Fa l'aggiunta di un riferimento a un ptr condiviso aumentare il numero di riferimento
- 28. MongoDB: come aggiorno un singolo sottoelemento in un array, a cui fa riferimento l'indice all'interno dell'array?
- 29. Come si dispone di un vincolo di controllo che fa riferimento a un'altra tabella?
- 30. mysql aggiungi un vincolo di chiave esterna che fa riferimento a una vista
la prima soluzione non funziona per me. Nel mio caso i modelli B e C sono gli stessi però ('User' ha una lista di amicizie in' friends' e ogni amicizia ha un riferimento alla sua controparte in senso antiorario). Ho capito: 'MissingSchemaError: Schema non è stato registrato per il modello" User.friends ".' – sol
Anche io sto affrontando lo stesso problema di @ S0lll0s. L'opzione 1 non sembra funzionare. – ramdog
@ramdog Non ho ancora trovato una soluzione che mi permetta di compilare un self-reference sotto documento, io uso solo un ObjectId "vuoto" e lo cerco da solo. Fammi sapere se trovi qualcosa, ma sono tentato di credere che non ci sia ancora una soluzione. – sol