MongoDB コレクションからドキュメントを 1 つだけ取得する方法


MongoDB とそれに関する私のすべての投稿の完全な概要については、私の overview をチェックしてください.

MongoDB には findOne という便利なメソッドがあります.これは find メソッドと非常によく似ていますが、カーソルの代わりに実際のドキュメントを返し、最初のドキュメントのみを返します. If you need to return multiple documents from a query 、今のところ find または findMany メソッドに固執する必要があります.

ここに示すドキュメントが users というコレクションにあるとします.

{
    "name": "John Doe",
    "email": "[email protected]",
    "admin": false
},
{
    "name": "Jane Doe",
    "email": "[email protected]",
    "admin": true
},
{
    "name": "Bob Doe",
    "email": "[email protected]",
    "admin": true
}


MongoDB で次のコマンドを実行すると:

db.users.findOne()


フィルターを指定していないため、users コレクションの最初のドキュメントが返されます.

{
    "name": "John Doe",
    "email": "[email protected]",
    "admin": false
}

admin 人のユーザーのみが必要であると指定すると、次のようになります.

db.users.findOne({admin: true})


2 人のユーザーがそのフィルターを満たしていますが、フィルターに一致する最初のドキュメントであるため、Jane Doe しか得られません.

{
    "name": "Jane Doe",
    "email": "[email protected]",
    "admin": true
}