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
プロジェクションには、明示的に複数のフィールドを含めることができます。次の操作では、
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
。