2017-10-19 66 views
1

我對mongodb是一個新手,我的要求是在單個文檔的對象數組內過濾如何過濾mongodb中單個json文檔中的對象數組?

例如:下面是我的json文檔。我想在組合中查詢以找到所有具有值「abc manufacturer」的製造商。

我試過的查詢是 db.Product.find({"Combinations": {$elemMatch: {"Manufacturer":"abc manufacturer"}}})。不幸的是,它不會將結果返回給abc製造商,而是全部。

我的結果應該與下面的截圖完全相似。因爲它在SQL服務器中,現在我想要在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/

相關問題