MCPcopy
hub / github.com/alibaba/MongoShake / runOplog

Function runOplog

oplog/change_stream_event_test.go:370–392  ·  view source on GitHub ↗
(data *PartialLog)

Source from the content-addressed store, hash-verified

368}
369
370func runOplog(data *PartialLog) error {
371 ns := strings.Split(data.Namespace, ".")
372 switch data.Operation {
373 case "i":
374 _, err := client.Database(ns[0]).Collection(ns[1]).InsertOne(context.Background(), data.Object)
375 return err
376 case "d":
377 _, err := client.Database(ns[0]).Collection(ns[1]).DeleteOne(context.Background(), data.Object)
378 return err
379 case "u":
380 _, err := client.Database(ns[0]).Collection(ns[1]).UpdateOne(context.Background(), data.Query, data.Object)
381 return err
382 case "c":
383 operation, found := ExtraCommandName(data.Object)
384 if !found {
385 return fmt.Errorf("extract command failed")
386 }
387
388 return RunCommand(ns[0], operation, data, client)
389 default:
390 return fmt.Errorf("unknown op[%v]", data.Operation)
391 }
392}
393
394func runByte(input []byte) error {
395 data, err := ConvertEvent2Oplog(input, false)

Callers 1

runByteFunction · 0.85

Calls 3

ExtraCommandNameFunction · 0.85
ErrorfMethod · 0.80
RunCommandFunction · 0.70

Tested by

no test coverage detected