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

Tìm kiếm văn bản đối tượng lồng nhau trong mongoDB

Với khung tổng hợp, nó có thể trông giống như vậy

db.getCollection('yourCollection').aggregate([
    {
        $unwind: '$arr'
    },
    {
        $match: {
            $or: [
                { 'arr.name': /world/i },
                { 'arr.description': /world/i }
            ]
        }
    },
    {
        $project: {
            _id: '$arr._id',
            name: '$arr.name',
            description: '$arr.description'
        }
    }
])

điều này sẽ dẫn đến kết quả sau cho dữ liệu mẫu của bạn:

{
    "_id" : 1,
    "name" : "Random",
    "description" : "Hello world"
}
{
    "_id" : 2,
    "name" : "World",
    "description" : "This is a random description"
}  

Nếu bạn cần một mảng duy nhất với các tài liệu kết quả như được hiển thị trong câu hỏi của mình, bạn có thể chỉ cần chuỗi toArray() gọi ở cuối đường dẫn - hãy nhớ rằng điều này có thể làm tăng mức tiêu thụ bộ nhớ trong trường hợp tập hợp kết quả lớn như được chỉ ra bởi SSDMS trong phần bình luận.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:$ push một biểu thức tính toán trong một nhóm $

  2. Ngăn chặn các điều kiện đua liên quan đến cơ sở dữ liệu trong Node.js

  3. Làm mới trình duyệt bằng sự kiện OnBeforeUnload

  4. MongoDB $ stdDevPop

  5. Pymongo tổng hợp:lọc theo số trường (động)