MongoDB コレクション内のすべてのドキュメントに対して単一のフィールドを選択するにはどうすればよいでしょうか? 質問する

MongoDB コレクション内のすべてのドキュメントに対して単一のフィールドを選択するにはどうすればよいでしょうか? 質問する

name私の MongoDB には、フィールドとを持つ 10 個のレコードを含む学生コレクションがありますroll。このコレクションの 1 つのレコードは次のとおりです。

{
    "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"),
    "name" : "Swati",
    "roll" : "80",
}

roll従来のデータベースで行うのと同じように、コレクション内の 10 レコードすべてのフィールドのみを取得するには、次のようにします。

SELECT roll FROM student

多くのブログに目を通しましたが、すべて、句が含まれている必要があるクエリになりましたWHERE。たとえば、次のようになります。

db.students.find({ "roll": { $gt: 70 })

クエリは次のものと同等です:

SELECT * FROM student WHERE roll > 70

私の要件は、条件なしで単一のキーのみを見つけることです。そのためのクエリ操作は何ですか。

ベストアンサー1

からMongoDB ドキュメント:

プロジェクションには、明示的に複数のフィールドを含めることができます。次の操作では、find()メソッドはクエリに一致するすべてのドキュメントを返します。結果セットでは、一致するドキュメントに item フィールドと qty フィールド、およびデフォルトでは _id フィールドのみが返されます。

db.inventory.find( { type: 'food' }, { item: 1, qty: 1 } )

Mongo のこの例では、返されるドキュメントには、、およびitemのフィールドのみが含まれます。qty_id


したがって、次のようなステートメントを発行できるはずです。

db.students.find({}, {roll:1, _id:0})

上記のステートメントは、学生コレクション内のすべてのドキュメントを選択し、返されるドキュメントはフィールドのみを返しますroll( は除外されます_id)。

を指定しない場合、_id:0返されるフィールドはrollと になります_id。デフォルトでは、「_id」フィールドが常に表示されます。そのため、_id:0とともにを明示的に指定する必要がありますroll

おすすめ記事