Tôi có một số tài liệu được lưu trong một bộ sưu tập (gọi tắt là urls
) trông như thế này:MongoDB - trận đấu regex các phím cho các tài liệu phụ
{
payload:{
url_google.com:{
url:'google.com',
text:'search'
}
}
},
{
payload:{
url_t.co:{
url:'t.co',
text:'url shortener'
}
}
},
{
payload:{
url_facebook.com:{
url:'facebook.com',
text:'social network'
}
}
}
Sử dụng Mongo CLI, là nó có thể tìm kiếm các tài liệu phụ của payload
rằng phù hợp với /^url_/
? Và, nếu có thể, cũng sẽ có thể truy vấn trên các trang con của đối sánh (ví dụ: đảm bảo có tồn tại text
)?
Tôi đã suy nghĩ một cái gì đó như thế này:
db.urls.find({"payload":{"$regex":/^url_/}}).count();
Nhưng đó là trở về 0 kết quả.
Bất kỳ trợ giúp hoặc đề xuất nào đều tuyệt vời.
Cảm ơn,
Matt
Cảm ơn câu trả lời của bạn. Rất tiếc, tôi không có quyền kiểm soát thiết kế của các tài liệu được chèn vào bộ sưu tập:/ Ngoài ra, tôi không chắc chắn ý của bạn là gì khi bạn nói tài liệu được nhúng? Bạn có một liên kết? Đó có phải là giống như một subobject? –
Tôi nghĩ rằng nó có nghĩa là giống như những gì bạn gọi là "subobject". "Tài liệu được nhúng" là một thuật ngữ tập trung nhiều dữ liệu hơn, trong khi "subobject" là một thuật ngữ tập trung hơn (đối với những ngôn ngữ mà tài liệu Mongo được thể hiện dưới dạng phân cấp các đối tượng). Nếu bạn không thể thay đổi cấu trúc của các tài liệu trong bộ sưu tập của mình, bạn có thể cân nhắc sử dụng map-reduce để viết lại chúng thành định dạng có thể truy vấn nhiều hơn (chẳng hạn như định dạng tôi đề xuất ở đây) – dcrosta
Cool, cảm ơn sự trợ giúp! –