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

Mongo tìm giá trị với khóa mẹ không xác định

Tôi không chắc bạn sẽ có thể giải quyết vấn đề này một cách tinh vi với giản đồ hiện tại của bạn; slotTypes phải là một mảng tài liệu con, sẽ cho phép $elemMatch của bạn truy vấn để làm việc. Hiện tại, nó là một đối tượng có các phím số.

Đó là, lược đồ tài liệu của bạn phải giống như sau:

{
   "assetsId": {
     "0": "546cf2f8585ffa451bb68369"
  },
   "slotTypes": [
     { "usage": "json" },
     { "usage": "image" }
  ]
}

Nếu thay đổi bố cục dữ liệu không phải là một tùy chọn, thì về cơ bản bạn sẽ cần phải quét qua mọi tài liệu để tìm các kết quả phù hợp với $where . Điều này chậm, không thể lập chỉ mục và khó xử lý.

db.objects.find({$where: function() {
  for(var key in this.slotTypes) {
    if (this.slotTypes[key].usage == "json") return true;
  }
  return false;
}})

Bạn nên đọc tài liệu về $ where để đảm bảo rằng bạn hiểu những cảnh báo của nó, và vì tình yêu của tất cả những gì thánh thiện, hãy làm sạch đầu vào của bạn cho chức năng; đây là mã trực tiếp đang thực thi trong ngữ cảnh cơ sở dữ liệu của bạn.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để kết nối chính xác với cụm Atlas M0 (Bậc miễn phí) thông qua trình điều khiển Java?

  2. Chuyển đổi mảng các đối tượng MongoId thành một mảng chuỗi

  3. Mongodb 4:Không khởi động được mongod.service:Không tìm thấy đơn vị mongod.service

  4. Tách chuỗi thành một mảng các chuỗi con hoặc ký tự trong MongoDB

  5. Kiểm tra chuỗi trống trong mongodb và pymongo