2016-10-31 6 views
0

Ich habe ein Dokument in MongoDb in dem Format wie unten gezeigt, ich möchte nur den Wert der Tag-Taste zu drucken. Ich habe verschiedene Möglichkeiten ausprobiert, aber keiner von ihnen arbeitetebekomme ich den ganzen Wert eines bestimmten Schlüssels von mongoDB

{ 
id = "my_id1" 
    tags: 
     { 
     'tag1':76, 
     'tag2':77, 
     'tag3':78 
     }, 
    category: "movie", 
}, 
{ 
    id = "my_id2" 
    tags: 
     { 
     'tag1':76, 
     'tag2':77, 
     'tag3':78 
     }, 
    category: "tv", 
}, 
{ 
    id = "my_id3" 
    tags: 
     { 
     'tag1':76, 
     'tag2':77, 
     'tag3':78 
     }, 
    category: "movie", 
} 

das gewünschte Ausgabeformat wie unten gezeigt wird

76 
77 
78 
76 
77 
78 
76 
77 
78 

der Code, ich versuche mich auch all den anderen Wert zurückkehrt.

+0

Sie müssen 'map_reduce' verwenden, da Ihr Schemadesign nicht gut ist. – styvane

Antwort

1

Wenn Ihr Schema ist wie folgt

{ 
     "_id" : ObjectId("581707cddb3c8c85a6745d20"), 
     "id" : "my_id1", 
     "tags" : { 
       "tag1" : 76, 
       "tag2" : 77, 
       "tag3" : 78 
     }, 
     "category" : "movie" 
} 
{ 
     "_id" : ObjectId("581707f7db3c8c85a6745d21"), 
     "id" : "my_id2", 
     "tags" : { 
       "tag1" : 76, 
       "tag2" : 77, 
       "tag3" : 78 
     }, 
     "category" : "tv" 
} 
{ 
     "_id" : ObjectId("58170a23db3c8c85a6745d22"), 
     "id" : "my_id3", 
     "tags" : { 
       "tag1" : 76, 
       "tag2" : 77, 
       "tag3" : 78 
     }, 
     "category" : "movie" 
} 

db.collection.find().count() ---> 3 

Dann kann der Tags Wert

db.collection.aggregate([{$project:{"_id":false,"tags.tag1":1, "tags.tag2":1, "tags.tag3":1}}]) 

Diese Abfrage ein Ergebnis unterhalb

{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } } 
{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } } 
{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } } 
wie gezeigt ergeben würde mit der folgenden Abfrage abgerufen werden

Wenn das Schema, das ich verwendet habe, um dieses Ergebnis zu erhalten, nicht mit Ihrem Schema übereinstimmt, dann müssen Sie modif y Die Abfrage entsprechend Ihrem Schema.

Verwandte Themen