2017-10-19 11 views
1

私はmongodbのかなり初心者です。私の要件は、単一のドキュメントのオブジェクトの配列内でフィルタリングすることです。mongodbの単一のjsonドキュメント内のオブジェクトの配列をフィルタリングする方法は?

たとえば、以下は私のjsonドキュメントです。私は、値を "abc manufacturer"としたすべてのManufacturerを見つけるために組み合わせをクエリしたいと思います。

私が試したクエリは db.Product.find({"Combinations": {$elemMatch: {"Manufacturer":"abc manufacturer"}}})です。残念なことに、abcメーカとの結果を返すことはありません。

私の結果は、下記のスクリーンショットに似ているはずです。以来、SQL Serverで、今私はmongodbで同じのクエリをしたい..フォーラムのいくつかの専門家は私にいくつかの光を投げる。

Screenshot

{ "_id" : ObjectId("59e8c938ab3166800493273f"), "ProductId" : 26, "Combinations" : [ { "#Type" : "S", "Manufacturer" : "abc manufacturer", "Model Name" : "Squatting Urinal", "Size" : "475 x 365 x 105 mm", "Colour" : "White" }, { "#Type" : "S", "Manufacturer" : "abc manufacturer", "Model Name" : "Squatting", "Size" : "430 x 350 x 100 mm" }, { "#Type" : "S", "Manufacturer" : "def manufacturer", "Model Name" : "Squatting Urinal", "Size" : "440 x 355 x 102 mm", "Colour" : "White" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Squatting Urinal", "Size" : "440 x 355 x 102 mm", "Colour" : "Ivory" }, { "#Type" : "S", "Manufacturer" : "ghi manufacturer", "Model Name" : "Squatting Pan - 861" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Mateo", "Size" : "470 x 365 x 100 mm" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Squatting", "Size" : "340 x 435 x 100 mm", "Colour" : "White" } ] }

答えて

0

私はあなたが探しているものを理解していれば、メーカーABCすべて組み合わせです。 上記のの組み合わせの製造元を含むすべてのドキュメントが表示されます。

これについては、aggregationsを確認する必要があります。

https://docs.mongodb.com/manual/aggregation/

関連する問題