0

List<String>在请求中传递了一个项目 ID。我只需要获取 id 在列表中的项目。基本上,我会向您发送一个产品 ID 列表,而 MongoDB 应该返回一个List<Product>. 我认为这将是内置的,但我无法实现。

我已经尝试过聚合、评估等方法,但我找不到方法。我认为它可能很简单:

override suspend fun getProductsById(input: List<String>): List<Product> {
    return productsCollection.aggregate<Product>(
        match(Product::_id in input)
    ).toList()
}

在我的理解中没有办法,但我一定是错的,因为我认为这就像一个简单的 API 应该允许的核心功能。也许我可以做一个 2008 年的风格,循环 aList<String>并逐个请求一个产品:

productsCollection.findOne(Product::_id eq itemId)

但是,我认为我不应该运行多个请求,这似乎是一个非常错误的想法。

4

1 回答 1

1

它适用于:

productCollection.find(Product::_id `in` ids)

in关键字是为 for 循环保留的。

于 2022-02-28T19:17:38.273 回答