mongo¶
MongoCollection
¶
Class for querying MongoDB collections (implemented by either pymongo or mongomock)
containing serialized EntryResource
s objects.
Source code in optimade/server/entry_collections/mongo.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
|
__init__(name, resource_cls, resource_mapper, database=CONFIG.mongo_database)
¶
Initialize the MongoCollection for the given parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
The name of the collection. |
required |
resource_cls |
EntryResource
|
The type of entry resource that is stored by the collection. |
required |
resource_mapper |
BaseResourceMapper
|
A resource mapper object that handles aliases and format changes between deserialization and response. |
required |
database |
str
|
The name of the underlying MongoDB database to connect to. |
CONFIG.mongo_database
|
Source code in optimade/server/entry_collections/mongo.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
|
__len__()
¶
Returns the total number of entries in the collection.
Source code in optimade/server/entry_collections/mongo.py
69 70 71 |
|
count(**kwargs)
¶
Returns the number of entries matching the query specified by the keyword arguments.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
**kwargs |
Any
|
Query parameters as keyword arguments. The keys
'filter', 'skip', 'limit', 'hint' and 'maxTimeMS' will be passed
to the |
{}
|
Source code in optimade/server/entry_collections/mongo.py
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
|
handle_query_params(params)
¶
Parse and interpret the backend-agnostic query parameter models into a dictionary that can be used by MongoDB.
This Mongo-specific method calls the base EntryCollection.handle_query_params
method
and adds additional handling of the MongoDB ObjectID type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
params |
Union[EntryListingQueryParams, SingleEntryQueryParams]
|
The initialized query parameter model from the server. |
required |
Raises:
Type | Description |
---|---|
Forbidden
|
If too large of a page limit is provided. |
BadRequest
|
If an invalid request is made, e.g., with incorrect fields or response format. |
Returns:
Type | Description |
---|---|
Dict[str, Any]
|
A dictionary representation of the query parameters. |
Source code in optimade/server/entry_collections/mongo.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
|
insert(data)
¶
Add the given entries to the underlying database.
Warning
No validation is performed on the incoming data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
List[EntryResource]
|
The entry resource objects to add to the database. |
required |
Source code in optimade/server/entry_collections/mongo.py
90 91 92 93 94 95 96 97 98 99 100 |
|