복붙노트

[MONGODB] 어떻게 MongoDB의 컬렉션에서 모든 문서를 하나의 필드를 선택하려면?

MONGODB

어떻게 MongoDB의 컬렉션에서 모든 문서를 하나의 필드를 선택하려면?

내 MongoDB를, 나는 10 개 개의 레코드는 필드 이름과 롤을 갖는 학생 컬렉션이 있습니다. 이 컬렉션의 한 기록은 다음과 같습니다

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

난 단지 우리가 사용하여 기존의 데이터베이스에서하는 것처럼 컬렉션의 모든 10 개 개의 레코드에 대한 필드 롤을 검색 할 :

SELECT roll FROM student

나는 많은 블로그를 통해 갔다 그러나 모두가 있어야합니다 쿼리의 결과로되는 경우, 예를 들어 그것에 절 :

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

쿼리는 동일합니다 :

SELECT * FROM student WHERE roll > 70

내 요구 사항은 어떤 조건없이 하나의 키를 찾을 수 있습니다. 그래서,에 대한 쿼리 작업은 무엇인가.

해결법

  1. ==============================

    1.MongoDB를 워드 프로세서에서 :

    MongoDB를 워드 프로세서에서 :

    몽고에서의 사람들에서이 예에서, 반환 된 문서는 항목, 수량 및 _id의 필드 만 포함됩니다.

    따라서, 당신은 같은 성명을 발표 할 수 있어야한다 :

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

    위의 문장은 학생들 컬렉션에서 모든 문서를 선택하며, 반환 된 문서는 롤 필드를 반환합니다 (그리고 _id 제외).

    우리가 _id 언급하지 않는 경우 : 반환 0 필드는 롤과 _id 될 것입니다. '_id'필드는 항상 기본적으로 표시됩니다. 0 롤과 함께 : 우리는 명시 적으로 _id 언급 할 필요가 그래서.

  2. ==============================

    2.테이블의 모든 데이터를 얻을 수

    테이블의 모든 데이터를 얻을 수

    db.student.find({})
    

    _id없이 테이블의 모든 데이터를 얻을 수

    db.student.find({}, {_id:0})
    

    _id 하나 개의 필드에서 모든 데이터를 얻을

    db.student.find({}, {roll:1})
    

    _id없이 하나 개의 필드에서 모든 데이터를 얻을 수

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

    where 절을 사용하여 지정된 데이터를 찾을 수

    db.student.find({roll: 80})
    

    WHERE 조건보다 절 더 큰 사용하여 데이터를 찾을

    db.student.find({ "roll": { $gt: 70 }}) // $gt is greater than 
    

    WHERE 절 및 초과하여 데이터를 검색하거나 동등한 조건

    db.student.find({ "roll": { $gte: 70 }}) // $gte is greater than or equal
    

    WHERE 절을 사용하여 데이터를 찾아보다 작거나 동일한 조건

    db.student.find({ "roll": { $lte: 70 }}) // $lte is less than or equal
    

    where 절을 사용하여 데이터를 찾을 적은 상태보다

    db.student.find({ "roll": { $lt: 70 }})  // $lt is less than
    
  3. ==============================

    3.여기 패턴 / Section 명령과 함께 또 다른 예는, mattingly890 정답이 있다고 생각

    여기 패턴 / Section 명령과 함께 또 다른 예는, mattingly890 정답이 있다고 생각

    db.collection.find ({}, {your_key : 1 _ID : 0})

  4. ==============================

    4.여기에서, 지루한로, 최단를하는 3 가지 방법을 이동 :

    여기에서, 지루한로, 최단를하는 3 가지 방법을 이동 :

    db.student.find({}, 'roll _id'); // <--- Just multiple fields name space separated
    // OR
    db.student.find({}).select('roll _id'); // <--- Just multiple fields name space separated
    // OR
    db.student.find({}, {'roll' : 1 , '_id' : 1 ); // <---- Old lengthy boring way
    

    특정 필드의 사용을 제거하려면 - 운영자 :

    db.student.find({}).select('roll -_id') // <--- Will remove id from result
    
  5. ==============================

    5.다만 교육 목적을 위해 당신은 또한 다음과 같은 방법으로 그것을 할 수 있습니다 :

    다만 교육 목적을 위해 당신은 또한 다음과 같은 방법으로 그것을 할 수 있습니다 :

    1.

        var query = {"roll": {$gt: 70};
        var cursor = db.student.find(query);
        cursor.project({"roll":1, "_id":0});
    

    2.

        var query = {"roll": {$gt: 70};
        var projection = {"roll":1, "_id":0};
        var cursor = db.student.find(query,projection);
    

    `

  6. ==============================

    6.다음 쿼리를보십시오 :

    다음 쿼리를보십시오 :

    db.student.find({}, {roll: 1, _id: 0}).pretty();
    

    희망이 도움이!

  7. ==============================

    7.

    db.<collection>.find({}, {field1: <value>, field2: <value> ...})
    

    귀하의 예제에서, 당신이 뭔가를 같이 할 수 있습니다 :

    db.students.find({}, {"roll":true, "_id":false})
    

    투사

    { field1: <value>, field2: <value> ... }
    

    노트

    읽기 더

  8. ==============================

    8.gowtham의 대답이 완료하지만, 그 명령 (몽고의 쉘을 사용하지 않는 사람들을 위해) 다른 API에 다를 수 있음을 주목할 필요가있다. 자세한 정보를 원하시면 문서 링크를 참조하십시오.

    gowtham의 대답이 완료하지만, 그 명령 (몽고의 쉘을 사용하지 않는 사람들을 위해) 다른 API에 다를 수 있음을 주목할 필요가있다. 자세한 정보를 원하시면 문서 링크를 참조하십시오.

    Nodejs, 예를 들어, 당신이 프로젝트에 순서대로 찾기 기능에 추가 할 것`투사라는 방법이있다.

    같은 예를 들어 설정에 따라, 다음과 같은 명령은 노드와 함께 사용할 수 있습니다 :

    db.student.find ({}) 프로젝트 ({롤 : 1}).

    또는 db.student.find ({}) 프로젝트 (롤 {1, _id : 0}).

    등등.

    다시 nodejs 사용자를 위해, 당신의 그 때는 명령을 추가하기 위해 toArray를 사용하는 (이전에이 API를 사용하는 경우에 당신은 이미 잘 알고 있어야 무엇을) 잊지 마세요.

  9. ==============================

    9.이것은 나를 위해 작동

    이것은 나를 위해 작동

    db.student.find({},{"roll":1})
    

    즉 WHERE 절에는없는 상태 내부 제 중괄호. 다음 괄호 안에 : 투사 필드 이름의 목록 결과에 필요하고도 1은 특정 필드는 쿼리 결과의 일부입니다 표시한다

  10. ==============================

    10.더 나은 이해를 위해 나는 비슷한 MySQL의 쿼리를 작성했습니다.

    더 나은 이해를 위해 나는 비슷한 MySQL의 쿼리를 작성했습니다.

    Selecting specific fields 
    
    Selecting specific fields with where clause
    
  11. ==============================

    11.

    student-details = db.students.find({{ "roll": {$gt: 70} },{"name": 1, "_id": False})
    
    student-details = db.students.find({{ "roll": {$gt: 70}},{"name": 1,"roll":1,"_id": False})
    
  12. ==============================

    12.u는 단지 컬렉션의 모든 10 개 개의 레코드에 대한 필드 "롤"을 검색합니다. 그런 다음이 시도.

    u는 단지 컬렉션의 모든 10 개 개의 레코드에 대한 필드 "롤"을 검색합니다. 그런 다음이 시도.

    MongoDB의에서 :

    SQL에서 :

  13. ==============================

    13.MongoDB를 여기에 수수료에 대한 쿼리를 수집하고 설명 필드입니다.

    MongoDB를 여기에 수수료에 대한 쿼리를 수집하고 설명 필드입니다.

    db.getCollection('fees').find({},{description:1,_id:0})
    
  14. ==============================

    14.

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

    이것은 동일합니다 -

    db.student.find ({}, { "롤"1 "이름"1 "_id": 0})

    이것은 동일합니다 -

  15. ==============================

    15.쉘에서 다음과 같은 쿼리를 사용 :

    쉘에서 다음과 같은 쿼리를 사용 :

    1. 데이터베이스 _

    e.g: use database_name
    

    일치하는 경우에만 자산을 특정 필드 정보를 반환 2. _ID : 결과의 디스플레이 ID 0을 지정하지

    db.collection_name.find( { "Search_Field": "value" }, 
                      { "Field_to_display": 1,_id:0 }  )
    
  16. ==============================

    16.MongoDB를 3.4에서 우리는 내가 이전 버전에 대해 확실하지 오전, 논리 아래로 사용할 수 있습니다

    MongoDB를 3.4에서 우리는 내가 이전 버전에 대해 확실하지 오전, 논리 아래로 사용할 수 있습니다

    학생에서 롤을 선택 ==> db.student.find ({}, {롤 : 1}!)

    (가 작은 경우) 위의 논리는 약간의 열을 정의하는 데 도움이

  17. ==============================

    17.난 그냥 당신이 다른 개체에 중첩되어있는 필드를 표시하려면, 다음과 같은 구문을 사용할 수있는 답변에 추가 할

    난 그냥 당신이 다른 개체에 중첩되어있는 필드를 표시하려면, 다음과 같은 구문을 사용할 수있는 답변에 추가 할

    db.collection.find ({}, {{ 'object.key'진정한}})

    여기서 키 오브젝트라는 오브젝트 내부에 존재

    { "_id" : ObjectId("5d2ef0702385"), "object" : { "key" : "value" } }
    
    
  18. ==============================

    18.내가 .find 사용하는 경우, MongoDB를위한 스튜디오 3T를 사용하여 ({}, {_id : 0, 롤 : TRUE})는 여전히 빈 _id 속성과 객체의 배열을 반환합니다.

    내가 .find 사용하는 경우, MongoDB를위한 스튜디오 3T를 사용하여 ({}, {_id : 0, 롤 : TRUE})는 여전히 빈 _id 속성과 객체의 배열을 반환합니다.

    단지 문자열의 배열로 원하는 롤 속성을 검색 자바 스크립트 맵을 저를 도왔 사용 :

    var rolls = db.student
      .find({ roll: { $gt: 70 } }) // query where role > 70
      .map(x => x.roll);           // return an array of role
    
  19. from https://stackoverflow.com/questions/25589113/how-to-select-a-single-field-for-all-documents-in-a-mongodb-collection by cc-by-sa and MIT license