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

オブジェクトのMongoDBクエリIN配列

    これは、単純なクエリでは実行できません。 employees.departmentsをループし、反復ごとにそのdepartments_idを配列に追加する必要があります。この配列は、2行目で使用できます。これは、選択した言語で行うのが最適です。

    これを簡単にするには、スキーマを変更する必要があります。 1つのオプションは、部門情報を従業員レコードに保存することですが、あなたの場合、大量のデータを複製することになります。

    代わりに、次のように、各部門に従業員IDと日付のリストを含めることをお勧めします。

    {
            "_id" : ObjectId("4f9643957f8b9a3f0a000004"),
            "dept_name" : "Marketing",
            "managers" : [
            ]
            "employees" : [
                {
                        "employee_id" : ObjectId("4f9643967f8b9a3f0a00005a"),
                        "from_date" : "1990-01-03",
                        "to_date" : "1990-01-15"
                }
            ]
    }
    

    その場合は、次のコマンドを実行するだけです。

    db.departments.find( { "employees.employee_id": ObjectId("some_id") } );
    


    1. フラッターダーツでローカルMongoDBに接続することは可能ですか?

    2. Mongoose Aggregate:$group内のレコード数を制限します

    3. MongoDBシェルのすべてのコレクションを一覧表示するにはどうすればよいですか?

    4. 何を選択すればよいですか:MongoDB / Cassandra / Redis / CouchDB?