MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để tìm các tài liệu tương tự trong MongoDB?

Trước hết, dữ liệu của bạn nên được sửa lại như sau:

{
  name: "Burger",
  ingredients: [
    "bread",
    "cheese",
    "tomato",
    "beef"
  ]
}

"Mục" bổ sung không thêm bất kỳ thông tin bổ sung nào cũng như không giúp truy cập dữ liệu theo bất kỳ cách nào.

Tiếp theo, bạn cần tạo chỉ mục văn bản . Tài liệu nói rằng

Vì vậy, chúng tôi chỉ đơn giản thực hiện một

db.collection.ensureIndex({"ingredients":"text"})

Bây giờ chúng ta có thể thực hiện $text tìm kiếm :

db.collection.find(
  { $text: { $search: "bread beef" } },
  { score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )

sẽ cung cấp cho bạn các tài liệu phù hợp nhất.

Tuy nhiên, những gì bạn cũng có thể làm là tìm kiếm không phải văn bản để tìm các kết quả phù hợp trực tiếp:

db.collection.find({ingredients:"beef"})

hoặc cho nhiều thành phần

db.collections.find({ ingredients: { $all: ["beef","bread"] } })

Vì vậy, để tìm kiếm theo đầu vào của người dùng, bạn có thể sử dụng tìm kiếm văn bản và tìm kiếm theo các thành phần đã chọn, bạn có thể sử dụng tìm kiếm không phải văn bản.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kết nối với cơ sở dữ liệu MongoDB bằng mongoose đằng sau proxy

  2. MongoDB với các tài liệu phụ giới hạn Mongoose

  3. MongoDb lưu lỗi ném cho các thành viên riêng của lớp PHP

  4. Truy vấn tổng hợp MongoDB sử dụng trình điều khiển PHP

  5. Chèn dữ liệu vào MongoDB - không lỗi, không chèn