Ho i seguenti dati in MongoDB (semplificato per ciò che è necessario alla mia domanda).Query MongoDB per trovare la proprietà del primo elemento dell'array
{
_id: 0,
actions: [
{
type: "insert",
data: "abc, quite possibly very very large"
}
]
}
{
_id: 1,
actions: [
{
type: "update",
data: "def"
},{
type: "delete",
data: "ghi"
}
]
}
Quello che mi piacerebbe è trovare il primo tipo di azione per ogni documento, ad es.
{_id:0, first_action_type:"insert"}
{_id:1, first_action_type:"update"}
(Va bene se i dati strutturati in modo diverso, ma ho bisogno di quei valori presenti, in qualche modo.)
EDIT: Ho provato db.collection.find({}, {'actions.action_type':1})
, ma, ovviamente, che restituisce tutti elementi dell'array azioni .
NoSQL è abbastanza nuovo per me. Prima, avrei memorizzato tutto questo in due tabelle in un database relazionale e fatto qualcosa come SELECT id, (SELECT type FROM action WHERE document_id = d.id ORDER BY seq LIMIT 1) action_type FROM document d
.
semplicemente '... azioni [0]' per 'collezione .find method' –
Questi documenti sono grandi ... Sto cercando di utilizzare una proiezione o qualcosa che mi aiuti a ottenere solo ciò di cui ho bisogno. –
potresti aggiungere indici –