Follow-up to #2698. The databases/list call posted with no request body,
which the Milvus demo cluster used during testing accepts. Production
Milvus is stricter: a bodyless POST returns HTTP 200 with
`{"code":1801,...}` and omits the `data` field. Since the success check
only inspects the HTTP status, list_milvus_databases() parsed zero names
and silently fell back to `["default"]`, hiding every non-default database
in the sidebar.
Send an empty JSON object `{}` as the body, matching every other Milvus
v2 endpoint. With the body, the endpoint returns code 0 and the full
database list on both demo and production clusters.
Ref #2693
Co-authored-by: 朱豪豪 <zhu.hh.sz@belle.com.cn>
Milvus supports multiple databases, but the sidebar only ever showed
collections under the hardcoded "default" database. The backend returned
["default"] for every vector store and the frontend loaded collections
for a single database and flattened them under the connection node.
- Backend (vector_driver): add list_databases() that calls Milvus
/v2/vectordb/databases/list (falling back to "default" for older Milvus
and for non-Milvus vector stores), and thread a database parameter
through find_documents() instead of hardcoding "default".
- document_ops: list_databases_core delegates VectorDb to list_databases();
find_documents_core forwards the selected database.
- Frontend: add a "vector-database" tree node type. For Milvus, connections
expand into database nodes, which expand into their own collections.
Collection node ids are namespaced by database to avoid collisions
across databases, and the collection id is stored in meta so activation
no longer parses the node id.
Fixes#2693
Co-authored-by: 朱豪豪 <zhu.hh.sz@belle.com.cn>
* fix(mongo): hỗ trợ ISODate() và new Date() trong query MongoDB
Parser shell MongoDB ở frontend chỉ chuyển ObjectId(...) sang extended JSON,
nên filter chứa ISODate("...")/new Date("...") không parse được: câu lệnh rơi
xuống SQL executor và báo lỗi "Use MongoDB-specific commands".
Bổ sung rewrite ISODate(x)/new Date(x) -> {"$date":x} trong normalizeJsonArgument,
khớp với json_value_to_bson của backend (đã hiểu $date/$oid). Thêm test cho
filter dùng ISODate và new Date.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix(mongo): decode $date extended JSON trong filter query
json_filter_value_to_bson chỉ chuyển {"$oid":...} nên filter chứa {"$date":...}
bị gửi thẳng lên server: { field: {"$date":...} } lỗi "unknown operator: $date",
còn { field: {"$gte": {"$date":...}} } so sánh với sub-document nên không khớp gì
(trả về rỗng).
Thêm nhánh parse_extended_json_date vào json_filter_value_to_bson, đồng bộ với
json_value_to_bson (vốn đã hiểu $date/$oid). Thêm test cho cả equality và $gte.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>