RandomExpression.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2025 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. ///
  15. /// A `RandomExpression` is a `FunctionExpression` that generates a random floating-point
  16. /// number between 0.0 (inclusive) and 1.0 (exclusive).
  17. ///
  18. /// This expression is useful when you need to introduce a random value into a pipeline,
  19. /// for example, to randomly sample a subset of documents.
  20. ///
  21. /// Example of using `RandomExpression` to sample documents:
  22. /// ```swift
  23. /// // Create a query to sample approximately 10% of the documents in a collection
  24. /// firestore.pipeline()
  25. /// .collection("users")
  26. /// .where(RandomExpression().lessThan(0.1))
  27. /// ```
  28. public class RandomExpression: FunctionExpression, @unchecked Sendable {
  29. /// Creates a new `RandomExpression` that generates a random number.
  30. public init() {
  31. super.init("rand", [])
  32. }
  33. }