Possiedo una raccolta Mongo in cui è necessario spostare una serie di oggetti in una raccolta separata.
La collezione è in questo formato:
{
_id: ObjectId("..."),
name: "...",
description: "...",
widgets: [
{ someprop: somevalue },
{ someprop: somevalue }
]
}
Vorrei svolgere la matrice oggetto in una raccolta differenziata.
Secondo la documentazione per $ out a http://docs.mongodb.org/manual/reference/operator/aggregation/out/ dovrei essere in grado di utilizzare l'operatore per creare una nuova collezione.
Le prime due operazioni nel seguente lavoro comando di shell Mongo possono provare la matrice in un elenco, ma fallisce quando aggiungo il $ out operazione:
db.mytable.aggregate([
{ $project : {_id: 0, datasets : 1}},
{ $unwind : "$widgets"},
{ $out: "widgets"}
]);
Errore:
Error: command failed: {
"errmsg" : "exception: Unrecognized pipeline stage name: '$out'",
"code" : 16436,
"ok" : 0
} : aggregate failed at src/mongo/shell/assert.js:13
Sia il client che il server sono in esecuzione 2.6? – Martin
E 'stato! Nella shell, version() mostrava 2.6.1 ma db.version() era 2.4.9; Avevo aggiornato Mongo, ma non avevo ancora copiato il nuovo binario di mongod e riavviato quel servizio. Dopo averlo fatto, db.version() ha mostrato 2.6.1 e ora l'operazione $ out funziona. Grazie – dr3x