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

Nhận chỉ mục của phần tử đã cho trong trường mảng trong MongoDB

Bắt đầu từ MongoDB phiên bản 3.4, chúng ta có thể sử dụng $ indexOfArray toán tử để trả về chỉ số mà tại đó một phần tử nhất định có thể được tìm thấy trong mảng.

$ indexOfArray có ba đối số. Đầu tiên là tên của trường mảng có tiền tố là $ ký tên.

Thứ hai là phần tử và tùy chọn thứ ba là chỉ mục để bắt đầu tìm kiếm. $ indexOfArray trả về chỉ mục đầu tiên mà tại đó phần tử được tìm thấy nếu chỉ mục để bắt đầu tìm kiếm không được chỉ định.

Demo:

> db.collection.insertOne( { "_id" : 123, "food": [ "apple", "mango", "banana", "mango" ] } )
{ "acknowledged" : true, "insertedId" : 123 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango" ] } } } ] )
{ "_id" : 123, "matchedIndex" : 1 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "mango", 2 ] } } } ] )
{ "_id" : 123, "matchedIndex" : 3 }
> db.collection.aggregate( [ { "$project": { "matchedIndex": { "$indexOfArray": [ "$food", "apricot" ] } } } ]  )
{ "_id" : 123, "matchedIndex" : -1 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cam kết và sự bền bỉ của đĩa trong NoSQL (MongoDB)

  2. Meteor yêu cầu sudo chạy

  3. Mongo có thể tự động khôi phục bộ sưu tập không?

  4. Một bộ sưu tập MongoDB có thể có một bộ sưu tập khác bên trong nó không?

  5. mongoose loại bỏ các đối tượng hoặc mảng trống