Skip to content

Commit f5b7bdc

Browse files
committed
Add insertOne()
1 parent ef036d7 commit f5b7bdc

File tree

202 files changed

+1023
-884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+1023
-884
lines changed

README.MD

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -142,41 +142,43 @@ Here is a sample class that demonstrates how to use the library:
142142

143143
```java
144144
import com.datastax.astra.client.DataAPIClient;
145-
import com.datastax.astra.client.Collection;
146-
import com.datastax.astra.client.Database;
147-
import com.datastax.astra.client.model.collections.Document;
148-
import com.datastax.astra.client.model.FindIterable;
145+
import com.datastax.astra.client.collections.Collection;
146+
import com.datastax.astra.client.databases.Database;
147+
import com.datastax.astra.client.collections.documents.Document;
148+
import com.datastax.astra.client.collections.commands.FindIterable;
149+
149150
import java.util.List;
150-
import static com.datastax.astra.client.model.query.Filters.eq;
151-
import static com.datastax.astra.client.model.SimilarityMetric.cosine;
151+
152+
import static com.datastax.astra.client.core.query.Filters.eq;
153+
import static com.datastax.astra.client.core.vector.SimilarityMetric.cosine;
152154

153155
public class GettingStarted {
154-
public static void main(String[] args) {
155-
// Initializing client with a token
156-
DataAPIClient client = new DataAPIClient("my_token");
157-
158-
// Accessing the Database through the HTTP endpoint
159-
Database db = client.getDatabase("http://db-region.apps.astra.datastax.com");
160-
161-
// Create collection with vector support
162-
Collection<Document> col = db.createCollection("demo", 2, cosine);
163-
164-
// Insert records
165-
col.insertMany(List.of(
166-
new Document("doc1").vector(new float[]{.1f, 0.2f}).append("key", "value1"),
167-
new Document().id("doc2").vector(new float[]{.2f, 0.4f}).append("hello", "world"),
168-
new Document("doc3").vector(new float[]{.5f, 0.6f}).append("key", "value1"))
169-
);
170-
171-
// Search
172-
FindIterable<Document> docs = col.find(
173-
eq("key", "value1"), // metadata filter
174-
new float[] {.5f, .5f}, //vector
175-
10); // maxRecord
176-
177-
// Iterate and print your results
178-
for (Document doc : docs) System.out.println(doc);
179-
}
156+
public static void main(String[] args) {
157+
// Initializing client with a token
158+
DataAPIClient client = new DataAPIClient("my_token");
159+
160+
// Accessing the Database through the HTTP endpoint
161+
Database db = client.getDatabase("http://db-region.apps.astra.datastax.com");
162+
163+
// Create collection with vector support
164+
Collection<Document> col = db.createCollection("demo", 2, cosine);
165+
166+
// Insert records
167+
col.insertMany(List.of(
168+
new Document("doc1").vector(new float[]{.1f, 0.2f}).append("key", "value1"),
169+
new Document().id("doc2").vector(new float[]{.2f, 0.4f}).append("hello", "world"),
170+
new Document("doc3").vector(new float[]{.5f, 0.6f}).append("key", "value1"))
171+
);
172+
173+
// Search
174+
FindIterable<Document> docs = col.find(
175+
eq("key", "value1"), // metadata filter
176+
new float[]{.5f, .5f}, //vector
177+
10); // maxRecord
178+
179+
// Iterate and print your results
180+
for (Document doc : docs) System.out.println(doc);
181+
}
180182
}
181183
```
182184

astra-db-java/src/main/java/com/datastax/astra/client/DataAPIClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.datastax.astra.client.admin.AstraDBAdmin;
2424
import com.datastax.astra.client.admin.AstraDBDatabaseAdmin;
2525
import com.datastax.astra.client.admin.DatabaseAdmin;
26+
import com.datastax.astra.client.databases.Database;
2627
import com.datastax.astra.internal.api.AstraApiEndpoint;
2728
import com.datastax.astra.internal.utils.Assert;
2829
import com.dtsx.astra.sdk.utils.AstraEnvironment;

astra-db-java/src/main/java/com/datastax/astra/client/DataAPIClients.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
*/
2222

2323
import com.datastax.astra.client.admin.DataAPIDatabaseAdmin;
24-
import com.datastax.astra.client.auth.UsernamePasswordTokenProvider;
24+
import com.datastax.astra.client.core.auth.UsernamePasswordTokenProvider;
25+
import com.datastax.astra.client.databases.Database;
2526
import com.datastax.astra.internal.command.LoggingCommandObserver;
2627

2728
import static com.datastax.astra.client.admin.AstraDBAdmin.DEFAULT_KEYSPACE;

astra-db-java/src/main/java/com/datastax/astra/client/DataAPIOptions.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
* #L%
2121
*/
2222

23-
import com.datastax.astra.client.auth.EmbeddingAPIKeyHeaderProvider;
24-
import com.datastax.astra.client.auth.EmbeddingHeadersProvider;
25-
import com.datastax.astra.client.model.http.Caller;
26-
import com.datastax.astra.client.model.http.HttpClientOptions;
27-
import com.datastax.astra.client.model.http.HttpProxy;
23+
import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider;
24+
import com.datastax.astra.client.core.auth.EmbeddingHeadersProvider;
25+
import com.datastax.astra.client.core.http.Caller;
26+
import com.datastax.astra.client.core.http.HttpClientOptions;
27+
import com.datastax.astra.client.core.http.HttpProxy;
2828
import com.datastax.astra.internal.command.CommandObserver;
2929
import com.datastax.astra.internal.command.LoggingCommandObserver;
3030
import lombok.Getter;

astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBAdmin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
*/
2222

2323
import com.datastax.astra.client.DataAPIOptions;
24-
import com.datastax.astra.client.model.DatabaseInfo;
24+
import com.datastax.astra.client.databases.DatabaseInfo;
2525
import com.datastax.astra.internal.api.AstraApiEndpoint;
2626
import com.datastax.astra.internal.command.LoggingCommandObserver;
2727
import com.datastax.astra.internal.utils.Assert;
@@ -338,14 +338,14 @@ public DatabaseInfo getDatabaseInfo(@NonNull UUID id) {
338338
* @return
339339
* database client
340340
*/
341-
public com.datastax.astra.client.Database getDatabase(UUID databaseId, String keyspace) {
341+
public com.datastax.astra.client.databases.Database getDatabase(UUID databaseId, String keyspace) {
342342
Assert.notNull(databaseId, "databaseId");
343343
Assert.hasLength(keyspace, "keyspace");
344344
String databaseRegion = devopsDbClient
345345
.findById(databaseId.toString())
346346
.map(db -> db.getInfo().getRegion())
347347
.orElseThrow(() -> new DatabaseNotFoundException(databaseId.toString()));
348-
return new com.datastax.astra.client.Database(
348+
return new com.datastax.astra.client.databases.Database(
349349
new AstraApiEndpoint(databaseId, databaseRegion, env).getApiEndPoint(),
350350
token,keyspace, dataAPIOptions) {
351351
};
@@ -359,7 +359,7 @@ public com.datastax.astra.client.Database getDatabase(UUID databaseId, String ke
359359
* @return
360360
* database client
361361
*/
362-
public com.datastax.astra.client.Database getDatabase(UUID databaseId) {
362+
public com.datastax.astra.client.databases.Database getDatabase(UUID databaseId) {
363363
return getDatabase(databaseId, DEFAULT_KEYSPACE);
364364
}
365365

astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import com.datastax.astra.client.DataAPIDestination;
2424
import com.datastax.astra.client.DataAPIOptions;
25-
import com.datastax.astra.client.model.FindEmbeddingProvidersResult;
25+
import com.datastax.astra.client.collections.commands.FindEmbeddingProvidersResult;
2626
import com.datastax.astra.internal.api.AstraApiEndpoint;
2727
import com.dtsx.astra.sdk.db.AstraDBOpsClient;
2828
import com.dtsx.astra.sdk.db.domain.Database;
@@ -55,15 +55,15 @@ public class AstraDBDatabaseAdmin implements DatabaseAdmin {
5555
final AstraDBOpsClient devopsDbClient;
5656

5757
/** Database if initialized from the DB. */
58-
protected com.datastax.astra.client.Database db;
58+
protected com.datastax.astra.client.databases.Database db;
5959

6060
/**
6161
* Initialize a database admin from token and database id.
6262
*
6363
* @param db
6464
* target database
6565
*/
66-
public AstraDBDatabaseAdmin(com.datastax.astra.client.Database db) {
66+
public AstraDBDatabaseAdmin(com.datastax.astra.client.databases.Database db) {
6767
this.databaseId = UUID.fromString(db.getDbApiEndpoint().substring(8, 44));
6868
this.env = getEnvironment(db.getOptions().getDestination());
6969
this.token = db.getToken();
@@ -88,7 +88,7 @@ public AstraDBDatabaseAdmin(String token, UUID databaseId, AstraEnvironment env,
8888
this.token = token;
8989
this.databaseId = databaseId;
9090
this.devopsDbClient = new AstraDBOpsClient(token, this.env);
91-
this.db = new com.datastax.astra.client.Database(getApiEndpoint(), token, DEFAULT_KEYSPACE, options);
91+
this.db = new com.datastax.astra.client.databases.Database(getApiEndpoint(), token, DEFAULT_KEYSPACE, options);
9292
}
9393

9494
/**
@@ -149,7 +149,7 @@ private String getApiEndpoint() {
149149
* @return
150150
* client to interact with database DML.
151151
*/
152-
public com.datastax.astra.client.Database getDatabase(String keyspace) {
152+
public com.datastax.astra.client.databases.Database getDatabase(String keyspace) {
153153
return db.useKeyspace(keyspace);
154154
}
155155

@@ -162,8 +162,8 @@ public com.datastax.astra.client.Database getDatabase(String keyspace) {
162162
* @return
163163
* client to interact with database DML.
164164
*/
165-
public com.datastax.astra.client.Database getDatabase(String keyspace, String tokenUser) {
166-
return new com.datastax.astra.client.Database(getApiEndpoint(), tokenUser, keyspace, db.getOptions());
165+
public com.datastax.astra.client.databases.Database getDatabase(String keyspace, String tokenUser) {
166+
return new com.datastax.astra.client.databases.Database(getApiEndpoint(), tokenUser, keyspace, db.getOptions());
167167
}
168168

169169
@Override
@@ -201,7 +201,7 @@ public void dropKeyspace(String keyspace) {
201201

202202
/** {@inheritDoc} */
203203
@Override
204-
public com.datastax.astra.client.Database getDatabase() {
204+
public com.datastax.astra.client.databases.Database getDatabase() {
205205
return db;
206206
}
207207

astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
*/
2222

2323
import com.datastax.astra.client.DataAPIOptions;
24-
import com.datastax.astra.client.Database;
25-
import com.datastax.astra.client.model.command.Command;
26-
import com.datastax.astra.client.model.command.CommandOptions;
27-
import com.datastax.astra.client.model.EmbeddingProvider;
28-
import com.datastax.astra.client.model.FindEmbeddingProvidersResult;
29-
import com.datastax.astra.client.model.KeyspaceOptions;
24+
import com.datastax.astra.client.databases.Database;
25+
import com.datastax.astra.client.core.commands.Command;
26+
import com.datastax.astra.client.core.commands.CommandOptions;
27+
import com.datastax.astra.client.collections.commands.EmbeddingProvider;
28+
import com.datastax.astra.client.collections.commands.FindEmbeddingProvidersResult;
29+
import com.datastax.astra.client.keyspaces.KeyspaceOptions;
3030
import com.datastax.astra.internal.api.ApiResponse;
3131
import com.datastax.astra.internal.command.AbstractCommandRunner;
3232
import com.datastax.astra.internal.command.CommandObserver;

astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
* #L%
2121
*/
2222

23-
import com.datastax.astra.client.Database;
24-
import com.datastax.astra.client.model.command.CommandRunner;
25-
import com.datastax.astra.client.model.EmbeddingProvider;
26-
import com.datastax.astra.client.model.FindEmbeddingProvidersResult;
23+
import com.datastax.astra.client.databases.Database;
24+
import com.datastax.astra.client.core.commands.CommandRunner;
25+
import com.datastax.astra.client.collections.commands.EmbeddingProvider;
26+
import com.datastax.astra.client.collections.commands.FindEmbeddingProvidersResult;
2727

2828
import java.util.Set;
2929
import java.util.concurrent.CompletableFuture;

astra-db-java/src/main/java/com/datastax/astra/client/Collection.java renamed to astra-db-java/src/main/java/com/datastax/astra/client/collections/Collection.java

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.datastax.astra.client;
1+
package com.datastax.astra.client.collections;
22

33
/*-
44
* #%L
@@ -20,45 +20,44 @@
2020
* #L%
2121
*/
2222

23+
import com.datastax.astra.client.DataAPIOptions;
24+
import com.datastax.astra.client.collections.commands.CountDocumentsOptions;
25+
import com.datastax.astra.client.collections.commands.DeleteManyOptions;
26+
import com.datastax.astra.client.collections.commands.DeleteOneOptions;
27+
import com.datastax.astra.client.collections.commands.DeleteResult;
28+
import com.datastax.astra.client.collections.commands.DistinctIterable;
29+
import com.datastax.astra.client.collections.commands.EstimatedCountDocumentsOptions;
30+
import com.datastax.astra.client.collections.commands.FindIterable;
31+
import com.datastax.astra.client.collections.commands.FindOneAndDeleteOptions;
32+
import com.datastax.astra.client.collections.commands.FindOneAndReplaceOptions;
33+
import com.datastax.astra.client.collections.commands.FindOneAndReplaceResult;
34+
import com.datastax.astra.client.collections.commands.FindOneAndUpdateOptions;
35+
import com.datastax.astra.client.collections.commands.FindOneOptions;
36+
import com.datastax.astra.client.collections.commands.FindOptions;
37+
import com.datastax.astra.client.collections.commands.InsertManyOptions;
38+
import com.datastax.astra.client.collections.commands.InsertManyResult;
39+
import com.datastax.astra.client.collections.commands.InsertOneOptions;
40+
import com.datastax.astra.client.collections.commands.InsertOneResult;
41+
import com.datastax.astra.client.databases.Database;
2342
import com.datastax.astra.client.exception.DataAPIFaultyResponseException;
2443
import com.datastax.astra.client.exception.DataApiException;
2544
import com.datastax.astra.client.exception.TooManyDocumentsToCountException;
26-
import com.datastax.astra.client.model.collections.CollectionIdTypes;
27-
import com.datastax.astra.client.model.collections.CollectionDefinition;
28-
import com.datastax.astra.client.model.collections.CollectionOptions;
29-
import com.datastax.astra.client.model.collections.CountDocumentsOptions;
30-
import com.datastax.astra.client.model.DeleteManyOptions;
31-
import com.datastax.astra.client.model.DeleteOneOptions;
32-
import com.datastax.astra.client.model.DeleteResult;
33-
import com.datastax.astra.client.model.DistinctIterable;
34-
import com.datastax.astra.client.model.collections.Document;
35-
import com.datastax.astra.client.model.EstimatedCountDocumentsOptions;
36-
import com.datastax.astra.client.model.FindIterable;
37-
import com.datastax.astra.client.model.FindOneAndDeleteOptions;
38-
import com.datastax.astra.client.model.FindOneAndReplaceOptions;
39-
import com.datastax.astra.client.model.FindOneAndReplaceResult;
40-
import com.datastax.astra.client.model.FindOneAndUpdateOptions;
41-
import com.datastax.astra.client.model.FindOneOptions;
42-
import com.datastax.astra.client.model.FindOptions;
43-
import com.datastax.astra.client.model.InsertManyOptions;
44-
import com.datastax.astra.client.model.InsertManyResult;
45-
import com.datastax.astra.client.model.InsertOneOptions;
46-
import com.datastax.astra.client.model.InsertOneResult;
47-
import com.datastax.astra.client.model.Page;
48-
import com.datastax.astra.client.model.ReplaceOneOptions;
49-
import com.datastax.astra.client.model.ReturnDocument;
50-
import com.datastax.astra.client.model.Update;
51-
import com.datastax.astra.client.model.UpdateManyOptions;
52-
import com.datastax.astra.client.model.UpdateOneOptions;
53-
import com.datastax.astra.client.model.UpdateResult;
54-
import com.datastax.astra.client.model.command.Command;
55-
import com.datastax.astra.client.model.command.CommandOptions;
56-
import com.datastax.astra.client.model.query.Filter;
57-
import com.datastax.astra.client.model.query.Filters;
58-
import com.datastax.astra.client.model.types.DataAPIKeywords;
59-
import com.datastax.astra.client.model.types.ObjectId;
60-
import com.datastax.astra.client.model.types.UUIDv6;
61-
import com.datastax.astra.client.model.types.UUIDv7;
45+
import com.datastax.astra.client.collections.documents.Document;
46+
import com.datastax.astra.client.core.paging.Page;
47+
import com.datastax.astra.client.collections.commands.ReplaceOneOptions;
48+
import com.datastax.astra.client.collections.documents.ReturnDocument;
49+
import com.datastax.astra.client.collections.documents.Update;
50+
import com.datastax.astra.client.collections.commands.UpdateManyOptions;
51+
import com.datastax.astra.client.collections.commands.UpdateOneOptions;
52+
import com.datastax.astra.client.collections.commands.UpdateResult;
53+
import com.datastax.astra.client.core.commands.Command;
54+
import com.datastax.astra.client.core.commands.CommandOptions;
55+
import com.datastax.astra.client.core.query.Filter;
56+
import com.datastax.astra.client.core.query.Filters;
57+
import com.datastax.astra.client.core.types.DataAPIKeywords;
58+
import com.datastax.astra.client.core.types.ObjectId;
59+
import com.datastax.astra.client.core.types.UUIDv6;
60+
import com.datastax.astra.client.core.types.UUIDv7;
6261
import com.datastax.astra.internal.api.ApiResponse;
6362
import com.datastax.astra.internal.command.AbstractCommandRunner;
6463
import com.datastax.astra.internal.command.CommandObserver;
@@ -87,7 +86,7 @@
8786

8887
import static com.datastax.astra.client.exception.DataApiException.ERROR_CODE_INTERRUPTED;
8988
import static com.datastax.astra.client.exception.DataApiException.ERROR_CODE_TIMEOUT;
90-
import static com.datastax.astra.client.model.types.DataAPIKeywords.SORT_VECTOR;
89+
import static com.datastax.astra.client.core.types.DataAPIKeywords.SORT_VECTOR;
9190
import static com.datastax.astra.internal.utils.AnsiUtils.cyan;
9291
import static com.datastax.astra.internal.utils.AnsiUtils.green;
9392
import static com.datastax.astra.internal.utils.AnsiUtils.magenta;
@@ -242,7 +241,7 @@ public class Collection<T> extends AbstractCommandRunner {
242241
* }
243242
* </pre>
244243
*/
245-
protected Collection(Database db, String collectionName, CommandOptions<?> commandOptions, Class<T> clazz) {
244+
public Collection(Database db, String collectionName, CommandOptions<?> commandOptions, Class<T> clazz) {
246245
notNull(db, ARG_DATABASE);
247246
notNull(clazz, ARG_CLAZZ);
248247
hasLength(collectionName, ARG_COLLECTION_NAME);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.datastax.astra.client.model.collections;
1+
package com.datastax.astra.client.collections;
22

33
/*-
44
* #%L

0 commit comments

Comments
 (0)