私は、アレイ内の各「名前が」「カラーに対して1~1図として示されている場合、以下のように結果のセットを取得したいMongoのデータベース各mongodbレコードの配列のフィールドを照会して表示する方法は?
{
"_id": "100",
"Color": "Green",
"data":[{"Name":"John"}]
}
{
"_id": "101",
"Color": "Green",
"data":[{"Name":"Andy"}]
}
{
"_id": "102",
"Color": "Blue",
"data":[{"Name":"Paul"}]
}
{
"_id": "103",
"Color": "Blue",
"data":[{"Name":"Jimi"}]
}
{
"_id": "104",
"Color": "Blue",
"data":[{"Name":"Lucy"}]
}
{
"_id": "105",
"Color": "Red",
"data":[{"Name":"Aron"}]
}
に以下のデータを有しますフィールド。
{
"Color": "Green", "Name": John
"Color": "Green", "Name": Andy
"Color": "Blue", "Name": Paul
"Color": "Blue", "Name": Jimi
"Color": "Blue", "Name": Lucy
"Color": "Red", "Name": Aron
}
私はグループに関するドキュメントを読みますが、上記のような形式で結果を取得するクエリを作成する方法を確認していませんか?あなたはここで、その後
db.getCollection('test').aggregate([
{
$project: {_id: 0, Color: 1, Name: "$data.Name"} //_id field is included by default and we need to supress it
},
{
$unwind: "$Name" //without this the Name will be embedded
},
{
$sort: {
"Color": 1
}
}])
をこのクエリを実行したい
、更新されたコードです。 1 - 重複したID - 許可されていない重複した_idを持っています 2 - 無効なJSON - あなたのデータフィールドは無効です。 [{Name:Aron}]のような配列obオブジェクト、または{Name:Aron}のようなプロパティを持つオブジェクトを言うことを意味しますか?まずはこの問題を解決してください。 –
@SamipSuwal私はColorフィールドを導入してデータ構造を修正しました。このフィールドは "_id"の代わりに表示されます。それは確かにオブジェクトの配列であり、修正されたフォーマットです。 – user3190153