2013-07-30 10 views
7

Posso definire uno schema in mongodb che richiede l'impostazione di determinati attributi. Molto simile a NOT NULL in SQL. Se è possibile. Qual è la sintassi per questo?Posso richiedere un attributo da impostare in una collezione mongodb? (non null)

Sto usando node.js e mangusta. mangusta v3.6.15 mongodb v2.4.5

Modifica La risposta fornita da Charles A è corretto, ma guardando attraverso la documentazione che ho trovato che in mangusta è anche possibile definire un campo come richiesto nella defenition schema in questo modo:

foo : { 
    bar : { type : String, required : true } 
} 
+0

quale driver stai usando? So come farlo in java con la primavera. – Jayz

+0

@Jayz Risposta in quiestion aggiornato ... –

+0

@LudwigMagnusson Sarebbe meglio aggiungere la propria risposta come risposta separata a questa domanda e quindi accettare che l'uso di 'required: true' è il modo migliore per farlo. – JohnnyHK

risposta

7

In Mangusta, è possibile utilizzare un validator per verificare se un campo è stato impostato prima di salvarlo. Per quanto ne so, non c'è modo di specificare su uno schema che sia richiesto un campo, quindi richiede un codice un po 'più standard.

-3

La risposta generale a questa domanda non è relativa a Mongoose, è una semplice domanda di MongoDB sulla possibilità di richiedere una chiave specifica in ogni documento.

La risposta è: SÌ. Crea un indice univoco su questa raccolta. L'indice dovrebbe essere il campo richiesto. Ci sarà un solo documento con il campo che ha un valore null, quindi impone la presenza di quel campo in tutti i documenti. Sconfiggilo con "sparse".

Vedi: http://docs.mongodb.org/manual/core/indexes/

In particolare, la sezione su indici univoci. Nota, questo non funzionerà per i campi di tipo 'hash'.

+6

Ma non ho bisogno che sia unico ... –

Problemi correlati