summaryrefslogtreecommitdiff
path: root/docs/tutorial/tut_mongo_sync_cmd_index_create.h
blob: 22842e0290b306bbc95c1db3e2636a2370e6d4fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
/** @page tut_mongo_sync_cmd_index_create Creating indexes
 *
 * This example will show how to properly create indexes, how to
 * verify its success, and will also give hints on how to prepare the
 * BSON used to create the index.
 *
 * @dontinclude tut_mongo_sync_cmd_index_create.c
 * @until stdio.h
 *
 * We will be creating and verifying multiple indexes, so lets create
 * a function that takes a connection, a prepared index, and does the
 * create and verify magic.
 *
 * @line static void
 * @until }
 * @until }
 *
 * This will create the index, and if it succeeds, write that to
 * stdout. If it fails, it will try to query the last error, and print
 * that to stderr.
 *
 * All we have to do past this point, is to build a few index
 * specifications in BSON, and see what happens:
 *
 * @line int
 * @until bson
 *
 * @line invalid
 * @until bson_finish
 *
 * The first index spec we create will have a single index field, @a
 * name, where we set the value to an empty string. However - as we
 * will soon see - this is not a valid specification, as MongoDB does
 * not accept string-typed fields in the index spec.
 *
 * @line index
 * @until bson_finish
 *
 * Armed with the knowledge that strings are not going to work, we
 * turn to our trusty old integers. Integers (32-bit integers at that,
 * there really is no need to use a 64-bit value here) are the best
 * fit for the type of an index field, because one can tell MongoDB
 * the sort order (with negative or positive numbers) with them easily.
 *
 * @line conn =
 * @until }
 *
 * We now have two index specs in BSON, and an established connection,
 * lets see what happens!
 *
 * @line create_and_verify
 * @until conn, index
 *
 * The first will - as explained above - fail, the second will
 * succeed.
 *
 * And that is all it takes to create simple indexes! We now free up
 * our BSON objects and disconnect, and the tutorial program is all
 * done and finished.
 *
 * @line bson_free
 * @until disconnect
 *
 * @line return
 * @until }
 */