Uncategorized

MongoDB: Truy vấn với trường chỉ định

MongoDB: Truy vấn với trường chỉ định

| |

Truy vấn với trường chỉ định là loại truy vấn mà chúng ta chỉ rõ những trường (fields) nào sẽ được trả về.

Trong MongoDB, Khi truy vấn sử dụng phương thức db.collection.find(), chúng ta có thể chỉ định trường trả về. Bằng cách thêm tên trường vào câu truy vấn với giá trị là 1 hoặc 0. (1 là bao gồm, 0 là loại trừ).

Ví dụ

Trước tiên, hãy cùng xem khi không chỉ định trường trả về kết quả sẽ như thế nào

Không chỉ định trường trả về:

db.cast.find({name: "Matt Damon"})

Kết quả:

{  
   "_id":ObjectId("5781c9ac48ef8c6b3ffb014a"),
   name:"Matt Damon",
   age:48,
   movies:[  
      {  
         movie:"The Martian",
         year:2015,
         genre:"Drama"
      }      {  
         movie:"Good Will Hunting",
         year:1997,
         genre:"Drama"
      }
   ]
}

Chỉ định trường trả về:

db.cast.find({name: "Matt Damon"}, { name: 1 } )

Kết quả:

{  
   "_id":ObjectId("5781c9ac48ef8c6b3ffb014a"),
   name:"Matt Damon",
}

Bao gồm (Inclusions) và Loại trừ (Exclusions)

Chúng ta không thể sử dụng 10 với nhau trong cùng một câu truy vấn (ngoại trừ _id). MongoDB sẽ trả về lỗi:

db.cast.find({name: "Matt Damon"}, { name: 1,  age: 0 } )

Kết quả:

Error: error: {
  "waitedMS" : NumberLong(0),
  "ok" : 0,
  "errmsg" : "Projection cannot have a mix of inclusion and exclusion.",
  "code" : 2
}

Đối với _id thì khác:

db.cast.find({name: "Matt Damon"}, { name: 1, _id: 0 } )

Kết quả:

{ name:"Matt Damon" }

 

    Previous

    MongoDB: Truy vấn trong Collection

    MongoDB: Giới hạn kết quả truy vấn

    Next

    Leave a Comment

    Subscribe

    A lead capture sample form