Mam następujące dane w MongoDB (uproszczone, co jest konieczne dla mojego pytania).Zapytanie MongoDB, aby znaleźć właściwość pierwszego elementu tablicy
{
_id: 0,
actions: [
{
type: "insert",
data: "abc, quite possibly very very large"
}
]
}
{
_id: 1,
actions: [
{
type: "update",
data: "def"
},{
type: "delete",
data: "ghi"
}
]
}
Chciałbym znaleźć pierwszy rodzaj akcji dla każdego dokumentu, np.
{_id:0, first_action_type:"insert"}
{_id:1, first_action_type:"update"}
(Jest w porządku, jeśli dane skonstruowany inaczej, ale trzeba te wartości są obecne, jakoś.)
EDIT: Próbowałem db.collection.find({}, {'actions.action_type':1})
, ale oczywiście, że zwraca wszystkie elementy tablicy actions .
NoSQL jest dla mnie zupełnie nowy. Wcześniej zapisałbym to wszystko w dwóch tabelach w relacyjnej bazie danych i zrobiłbym coś takiego jak SELECT id, (SELECT type FROM action WHERE document_id = d.id ORDER BY seq LIMIT 1) action_type FROM document d
.
po prostu '... actions [0]' for 'collection .find method' –
Te dokumenty są duże ... Chciałbym użyć projekcji lub czegoś, co pomogłoby mi uzyskać tylko to, czego potrzebuję. –
można dodawać indeksy –