@@ -99,19 +99,101 @@ The terms collections and documents are used because the Appwrite JSON REST API
99
99
<p>
100
100
Navigate to the <b>Documents</b> tab of your collection and click the <b>Add Document</b> button, or add a document programmatically:
101
101
</p>
102
- <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
103
- <pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Appwrite } from "appwrite";
102
+ <ul class="phases clear" data-ui-phases>
103
+ <li>
104
+ <h3>Web</h3>
105
+ <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
106
+ <pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Appwrite } from "appwrite";
104
107
105
108
const sdk = new Appwrite();
106
- const promise = sdk.database.createDocument('[COLLECTION_ID]', {});
109
+ const promise = sdk.database.createDocument('[COLLECTION_ID]', 'unique()', {});
107
110
108
111
promise.then(function (response) {
109
112
console.log(response); // Success
110
113
}, function (error) {
111
114
console.log(error); // Failure
112
115
});
113
- </code></pre>
114
- </div>
116
+ </code></pre>
117
+ </div>
118
+ </li>
119
+ <li>
120
+ <h3>Flutter</h3>
121
+ <div class="ide" data-lang="dart" data-lang-label="Flutter SDK">
122
+ <pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
123
+ void main() async {
124
+ final client = Client();
125
+ final database = Database(client);
126
+ try {
127
+ final doc = database.createDocument(collectionId: '[COLLECTION_ID]', documentId: 'unique()', data: {});
128
+ print(doc.toMap());
129
+ } on AppwriteException catch(e) {
130
+ print(e);
131
+ }
132
+ }
133
+ </code></pre>
134
+ </div>
135
+ </li>
136
+ <li>
137
+ <h3>Android</h3>
138
+ <div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
139
+ <pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
140
+ import android.os.Bundle
141
+ import kotlinx.coroutines.GlobalScope
142
+ import kotlinx.coroutines.launch
143
+ import io.appwrite.Client
144
+ import io.appwrite.services.Database
145
+
146
+ class MainActivity : AppCompatActivity() {
147
+ override fun onCreate(savedInstanceState: Bundle?) {
148
+ super.onCreate(savedInstanceState)
149
+ setContentView(R.layout.activity_main)
150
+
151
+ val client = Client(applicationContext)
152
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
153
+ .setProject("5df5acd0d48c2") // Your project ID
154
+
155
+ val database = Database(client)
156
+
157
+ GlobalScope.launch {
158
+ val response = database.createDocument(
159
+ collectionId = "[COLLECTION_ID]",
160
+ documentId = "unique()",
161
+ data = mapOf( "a" to "b" ),
162
+ )
163
+ val json = response.body?.string()
164
+ }
165
+ }
166
+ }</code></pre>
167
+ </div>
168
+ </li>
169
+ <li>
170
+ <h3>iOS</h3>
171
+ <div class="ide" data-lang="swift" data-lang-label="Apple SDK">
172
+ <pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
173
+
174
+ func main() {
175
+ let client = Client()
176
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
177
+ .setProject("my_project") // Your project ID
178
+
179
+ let database = Database(client)
180
+ database.createDocument(
181
+ collectionId: "[COLLECTION_ID]",
182
+ documentId: "unique()",
183
+ data: [:]
184
+ ) { result in
185
+ switch result {
186
+ case .failure(let error):
187
+ print(error.message)
188
+ case .success(let document):
189
+ print(String(describing: document)
190
+ }
191
+ }
192
+ }</code></pre>
193
+ </div>
194
+ </li>
195
+ </ul>
196
+
115
197
116
198
<h3><a href="/docs/database#querying-documents" id="querying-documents">Querying Documents</a></h3>
117
199
@@ -122,14 +204,97 @@ promise.then(function (response) {
122
204
<p>
123
205
To find specific documents in a collection, pass an array of query strings as a parameter to the <a href="/docs/server/database#databaseListDocuments">listDocuments</a> endpoint. The SDKs provide a <b>Query</b> class to make query building simpler:
124
206
</p>
125
- <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
126
- <pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Query } from "appwrite";
207
+ <ul class="phases clear" data-ui-phases>
208
+ <li>
209
+ <h3>Web</h3>
210
+ <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
211
+ <pre class="line-numbers"><code class="prism language-javascript" data-prism>import { Query } from "appwrite";
127
212
128
213
sdk.database.listDocuments('movies', [
129
214
Query.equal('title', 'Avatar')
130
215
]);
131
216
</code></pre>
132
- </div>
217
+ </div>
218
+ </li>
219
+ <li>
220
+ <h3>Flutter</h3>
221
+ <div class="ide" data-lang="javascript" data-lang-label="Flutter SDK">
222
+ <pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
223
+
224
+ void main() async {
225
+ final client = Client();
226
+ final database = Database(client);
227
+ try {
228
+ final docs = await database.listDocuments(
229
+ collectionId: 'movies',
230
+ queries: [Query.equal('title', 'Avatar')]);
231
+ print(docs.toMap());
232
+ } on AppwriteException catch(e) {
233
+ print(e);
234
+ }
235
+ }
236
+ </code></pre>
237
+ </div>
238
+ </li>
239
+ <li>
240
+ <h3>Android</h3>
241
+ <div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
242
+ <pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
243
+ import android.os.Bundle
244
+ import kotlinx.coroutines.GlobalScope
245
+ import kotlinx.coroutines.launch
246
+ import io.appwrite.Client
247
+ import io.appwrite.services.Database
248
+ import io.appwrite.Query
249
+
250
+ class MainActivity : AppCompatActivity() {
251
+ override fun onCreate(savedInstanceState: Bundle?) {
252
+ super.onCreate(savedInstanceState)
253
+ setContentView(R.layout.activity_main)
254
+
255
+ val client = Client(applicationContext)
256
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
257
+ .setProject("5df5acd0d48c2") // Your project ID
258
+
259
+ val database = Database(client)
260
+
261
+ GlobalScope.launch {
262
+ val response = database.listDocuments(
263
+ collectionId = "[COLLECTION_ID]",
264
+ queries = [Query.equal('title', 'Avatar')],
265
+ )
266
+ val json = response.body?.string()
267
+ }
268
+ }
269
+ }</code></pre>
270
+ </div>
271
+ </li>
272
+ <li>
273
+ <h3>iOS</h3>
274
+ <div class="ide" data-lang="swift" data-lang-label="Apple SDK">
275
+ <pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
276
+
277
+ func main() {
278
+ let client = Client()
279
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
280
+ .setProject("my_project") // Your project ID
281
+
282
+ let database = Database(client)
283
+ database.listDocuments(
284
+ collectionId: "[COLLECTION_ID]",
285
+ queries: [Query.equal('title', 'Avatar')]
286
+ ) { result in
287
+ switch result {
288
+ case .failure(let error):
289
+ print(error.message)
290
+ case .success(let document):
291
+ print(String(describing: document)
292
+ }
293
+ }
294
+ }</code></pre>
295
+ </div>
296
+ </li>
297
+ </ul>
133
298
134
299
<p>The following operators are currently supported:</p>
135
300
<table cellspacing="0" cellpadding="0" border="0" class="full margin-bottom-large">
@@ -168,13 +333,104 @@ sdk.database.listDocuments('movies', [
168
333
</table>
169
334
170
335
<p>Each query string is logically separated via AND. For OR logic, pass multiple values, separated by commas:</p>
171
- <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
172
- <pre class="line-numbers"><code class="prism language-javascript" data-prism>sdk.database.listDocuments('movies', [
173
- Query.equal('title', 'Avatar', 'Lord of the Rings'),
174
- Query.greater('year', 1999)
175
- ]);
176
- </code></pre>
177
- </div>
336
+ <ul class="phases clear" data-ui-phases>
337
+ <li>
338
+ <h3>Web</h3>
339
+ <div class="ide" data-lang="javascript" data-lang-label="Web SDK">
340
+ <pre class="line-numbers"><code class="prism language-javascript" data-prism>sdk.database.listDocuments('movies', [
341
+ Query.equal('title', 'Avatar', 'Lord of the Rings'),
342
+ Query.greater('year', 1999)
343
+ ]);
344
+ </code></pre>
345
+ </div>
346
+ </li>
347
+ <li>
348
+ <h3>Flutter</h3>
349
+ <div class="ide" data-lang="javascript" data-lang-label="Flutter SDK">
350
+ <pre class="line-numbers"><code class="prism language-dart" data-prism>import 'package:appwrite/appwrite.dart';
351
+
352
+ void main() async {
353
+ final client = Client();
354
+ final database = Database(client);
355
+ try {
356
+ final docs = await database.listDocuments(
357
+ collectionId: 'movies',
358
+ queries: [
359
+ Query.equal('title', ['Avatar', 'Lord of the Rings']),
360
+ Query.greater('year', 1999),
361
+ ]);
362
+ print(docs.toMap());
363
+ } on AppwriteException catch(e) {
364
+ print(e);
365
+ }
366
+ }</code></pre>
367
+ </div>
368
+ </li>
369
+ <li>
370
+ <h3>Android</h3>
371
+ <div class="ide" data-lang="kotlin" data-lang-label="Android SDK">
372
+ <pre class="line-numbers"><code class="prism language-kotlin" data-prism>import androidx.appcompat.app.AppCompatActivity
373
+ import android.os.Bundle
374
+ import kotlinx.coroutines.GlobalScope
375
+ import kotlinx.coroutines.launch
376
+ import io.appwrite.Client
377
+ import io.appwrite.services.Database
378
+ import io.appwrite.Query
379
+
380
+ class MainActivity : AppCompatActivity() {
381
+ override fun onCreate(savedInstanceState: Bundle?) {
382
+ super.onCreate(savedInstanceState)
383
+ setContentView(R.layout.activity_main)
384
+
385
+ val client = Client(applicationContext)
386
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
387
+ .setProject("5df5acd0d48c2") // Your project ID
388
+
389
+ val database = Database(client)
390
+
391
+ GlobalScope.launch {
392
+ val response = database.listDocuments(
393
+ collectionId = "[COLLECTION_ID]",
394
+ queries = [
395
+ Query.equal('title', ['Avatar', 'Lord of the Rings']),
396
+ Query.greater('year', 1999),
397
+ ],
398
+ )
399
+ val json = response.body?.string()
400
+ }
401
+ }
402
+ }</code></pre>
403
+ </div>
404
+ </li>
405
+ <li>
406
+ <h3>iOS</h3>
407
+ <div class="ide" data-lang="swift" data-lang-label="Apple SDK">
408
+ <pre class="line-numbers"><code class="prism language-swift" data-prism>import Appwrite
409
+
410
+ func main() {
411
+ let client = Client()
412
+ .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint
413
+ .setProject("my_project") // Your project ID
414
+
415
+ let database = Database(client)
416
+ database.listDocuments(
417
+ collectionId: "[COLLECTION_ID]",
418
+ queries: [
419
+ Query.equal('title', ['Avatar', 'Lord of the Rings']),
420
+ Query.greater('year', 1999)
421
+ ]
422
+ ) { result in
423
+ switch result {
424
+ case .failure(let error):
425
+ print(error.message)
426
+ case .success(let document):
427
+ print(String(describing: document)
428
+ }
429
+ }
430
+ }</code></pre>
431
+ </div>
432
+ </li>
433
+ </ul>
178
434
179
435
<h2><a href="/docs/database#indexes" id="indexes">Indexes</a></h2>
180
436
<p>
0 commit comments