-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query 2018-03-26
-
(copied to CRM)
$snapshot is being removed in MongoDB 4.0, SERVER-32174. As a workaround, hint the _id index:
diff --git a/src/mongo/gotools/common/db/command.go b/src/mongo/gotools/common/db/command.go
index f777d94..159bdfb 100644
--- a/src/mongo/gotools/common/db/command.go
+++ b/src/mongo/gotools/common/db/command.go
@@ -204,7 +204,9 @@ func (sp *SessionProvider) FindOne(db, collection string, skip int, query interf
// ApplyFlags applies flags to the given query session.
func ApplyFlags(q *mgo.Query, session *mgo.Session, flags int) *mgo.Query {
if flags&Snapshot > 0 {
- q = q.Snapshot()
+ // The snapshot option for find has been removed in the server, workaround by hinting the
+ // _id index instead.
+ q = q.Hint("_id")
}
if flags&LogReplay > 0 {
q = q.LogReplay()
diff --git a/src/mongo/gotools/mongodump/mongodump.go b/src/mongo/gotools/mongodump/mongodump.go
index 41b37e3..e05b83e 100644
--- a/src/mongo/gotools/mongodump/mongodump.go
+++ b/src/mongo/gotools/mongodump/mongodump.go
@@ -544,7 +544,7 @@ func (dump *MongoDump) DumpIntent(intent *intents.Intent, buffer resettableOutpu
// ---forceTablesScan runs the query without snapshot enabled
findQuery = session.DB(intent.DB).C(intent.C).Find(nil)
default:
- findQuery = session.DB(intent.DB).C(intent.C).Find(nil).Snapshot()
+ findQuery = session.DB(intent.DB).C(intent.C).Find(nil).Hint("_id")
}
var dumpCount int64
--
2.7.4
- is depended on by
-
SERVER-32174 Remove old snapshot query option
-
- Closed
-
- is related to
-
TOOLS-2103 mongoexport uses deprecated snapshot query option
-
- Closed
-
- related to
-
TOOLS-1952 Use --forceTableScan by default when running against WiredTiger nodes
-
- Closed
-