code: func (tx *Transaction) Query(collection *Collection) *TransactionQuery {
  	return &TransactionQuery{
  		query: newQuery(collection),
  		tx:    tx,
  	}
  }
docs: // Query is used to construct a query in the context of an existing Transaction
  // It can be used to run a query atomically along with commands, scripts, or
  // other queries in a single round trip. Note that this method returns a
  // TransactionQuery, whereas Collection.NewQuery returns a Query. The two
  // types are very similar, but there are differences in how they are eventually
  // executed. Like a regular Query, a TransactionQuery can be chained together
  // with one or more query modifiers (e.g. Filter or Order). You also need to
  // finish the query with a method such as Run, RunOne, or Count. The major
  // difference is that TransactionQueries are not actually run until you call
  // Transaction.Exec(). As a consequence, the finisher methods (e.g. Run, RunOne,
  // Count, etc) do not return anything. Instead they accept arguments which are
  // then mutated after the transaction is executed.