sql >> データベース >  >> NoSQL >> MongoDB

マングースクエリ:配列内の要素を検索します

    $を使用する 位置演算子、あなたは結果を得ることができます。ただし、vehiclesに複数の要素がある場合 射影で使用できる位置演算子は1つだけであり、2つの配列(1つは別の配列内)で作業しているため、それらすべての配列が結果に返されます。

    aggregation frameworkをご覧になることをお勧めします。 、より多くの柔軟性が得られるため。シェルで実行される質問のクエリ例を次に示します。私はマングースに精通していませんが、これはまだあなたを助け、あなたはそれを翻訳することができると思います:

    db.collection.aggregate([
        // Get only the documents where "email" equals "[email protected]" -- REPLACE with params.username
        {"$match" : {email : "[email protected]"}}, 
        // Unwind the "inventories" array
        {"$unwind" : "$inventories"}, 
        // Get only elements where "inventories.title" equals "activeInventory"
        {"$match" : {"inventories.title":"activeInventory"}}, 
        // Unwind the "vehicles" array
        {"$unwind" : "$inventories.vehicles"}, 
        // Filter by vehicle ID -- REPLACE with vehicleID 
        {"$match" : {"inventories.vehicles._id":ObjectId("53440e94c02b3cae81eb0069")}}, 
        // Tidy up the output
        {"$project" : {_id:0, vehicle:"$inventories.vehicles"}}
    ])
    

    これが得られる出力です:

    {
            "result" : [
                    {
                            "vehicle" : {
                                    "_id" : ObjectId("53440e94c02b3cae81eb0069"),
                                    "tags" : [
                                            "vehicle"
                                    ],
                                    "details" : [
                                            {
                                                    "_id" : ObjectId("53440e94c02b3cae81eb0066"),
                                                    "year" : 2007,
                                                    "transmission" : "Manual",
                                                    "price" : 1000,
                                                    "model" : "Firecar",
                                                    "mileageReading" : 50000,
                                                    "make" : "Bentley",
                                                    "interiorColor" : "blue",
                                                    "history" : "CarProof",
                                                    "exteriorColor" : "blue",
                                                    "driveTrain" : "SWD",
                                                    "description" : "test vehicle",
                                                    "cylinders" : 4,
                                                    "mileageType" : "kms"
                                            }
                                    ]
                            }
                    }
            ],
            "ok" : 1
    }
    


    1. Mongodbと、ポリゴンと交差するポリゴンの検索をクエリする

    2. 複数列のユニークなマングースnodejsの組み合わせ

    3. MongodbJavaドライバーでIDフィールドごとに複数のグループを作成する方法

    4. OAuthdインスタンスの実行に関する問題