1 /**
2 	MongoDB operation flag definitions.
3 
4 	Copyright: © 2012-2016 RejectedSoftware e.K.
5 	License: Subject to the terms of the MIT license, as written in the included LICENSE.txt file.
6 	Authors: Sönke Ludwig
7 */
8 module vibe.db.mongo.flags;
9 
10 enum UpdateFlags {
11 	none         = 0,    /// Normal update of a single document.
12 	upsert       = 1<<0, /// Creates a document if none exists.
13 	multiUpdate  = 1<<1, /// Updates all matching documents.
14 
15 	None = none, /// Deprecated compatibility alias
16 	Upsert = upsert, /// Deprecated compatibility alias
17 	MultiUpdate = multiUpdate /// Deprecated compatibility alias
18 }
19 
20 enum IndexFlags {
21 	none = 0,
22 	unique = 1<<0,
23 	dropDuplicates = 1<<2,
24 	background = 1<<3,
25 	sparse = 1<<4,
26 	expireAfterSeconds = 1<<5,
27 
28 	None = none, /// Deprecated compatibility alias, use `none` instead.
29 	Unique = unique, /// Deprecated compatibility alias, use `unique` instead.
30 	DropDuplicates = dropDuplicates, /// Deprecated compatibility alias, use `dropDuplicates` instead.
31 	Background = background, /// Deprecated compatibility alias, use `background` instead.
32 	Sparse = sparse, /// Deprecated compatibility alias, use `sparse` instead.
33 	ExpireAfterSeconds = expireAfterSeconds, /// Deprecated compatibility alias, use `expireAfterSeconds` instead.
34 }
35 
36 enum InsertFlags {
37 	none             = 0,    /// Normal insert.
38 	continueOnError  = 1<<0, /// For multiple inserted documents, continues inserting further documents after a failure.
39 
40 	None = none, /// Deprecated compatibility alias
41 	ContinueOnError = continueOnError /// Deprecated compatibility alias
42 }
43 
44 enum QueryFlags {
45 	none             = 0,    /// Normal query
46 	tailableCursor   = 1<<1, ///
47 	slaveOk          = 1<<2, ///
48 	oplogReplay      = 1<<3, ///
49 	noCursorTimeout  = 1<<4, ///
50 	awaitData        = 1<<5, ///
51 	exhaust          = 1<<6, ///
52 	partial          = 1<<7, ///
53 
54 	None = none, /// Deprecated compatibility alias
55 	TailableCursor = tailableCursor, /// Deprecated compatibility alias
56 	SlaveOk = slaveOk, /// Deprecated compatibility alias
57 	OplogReplay = oplogReplay, /// Deprecated compatibility alias
58 	NoCursorTimeout = noCursorTimeout, /// Deprecated compatibility alias
59 	AwaitData = awaitData, /// Deprecated compatibility alias
60 	Exhaust = exhaust, /// Deprecated compatibility alias
61 	Partial = partial /// Deprecated compatibility alias
62 }
63 
64 enum DeleteFlags {
65 	none          = 0,
66 	singleRemove  = 1<<0,
67 
68 	None = none, /// Deprecated compatibility alias
69 	SingleRemove = singleRemove /// Deprecated compatibility alias
70 }
71 
72 enum ReplyFlags {
73 	none              = 0,
74 	cursorNotFound    = 1<<0,
75 	queryFailure      = 1<<1,
76 	shardConfigStale  = 1<<2,
77 	awaitCapable      = 1<<3,
78 
79 	None = none, /// Deprecated compatibility alias
80 	CursorNotFound = cursorNotFound, /// Deprecated compatibility alias
81 	QueryFailure = queryFailure, /// Deprecated compatibility alias
82 	ShardConfigStale = shardConfigStale, /// Deprecated compatibility alias
83 	AwaitCapable = awaitCapable /// Deprecated compatibility alias
84 }