gpt4 book ai didi

perl - 如何在不对 MongoDB 的 $in 进行硬编码的情况下动态提供列表?

转载 作者:行者123 更新时间:2023-12-02 01:27:32 26 4
gpt4 key购买 nike

我有一个要在 mongoDB 集合中搜索的 ID 列表。

下面的代码工作正常,但每个 ID 都有多个数据库调用,如果不进行硬编码,我无法传递数组列表。

$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "56de679ce64cfa37a61b94f3" ),
MongoDB::OID->new( value => "56d533dee64cfa2a970b2631" )
]
}
} );

但是我想动态传递id,像这样

$db->$collection->find( {
"_id" => {
'$in' => [ @list ]
}
} );

@list 包含两个元素:

[
'56de679ce64cfa37a61b94f3',
'56d533dee64cfa2a970b2631'
]

我怎样才能通过传递一个动态的 id 数组来完成这项工作?

最佳答案

如果数组 ref 中的那些东西需要是 MongoDB::OID 对象,则需要创建它们。

您可以使用 map动态地做到这一点。这就像一个 foreach 循环。您应该熟悉它,因为 MongoDB 中的 _map_reduce 中的 map 是同一件事。 Perl 中的迭代器变量是 $_

my @list = (
'56de679ce64cfa37a61b94f3',
'56d533dee64cfa2a970b2631',
);

$db->$collection->find( {
"_id" => {
'$in' => [ map { MongoDB::OID->new( value => $_ ) } @list ]
}
} );

关于perl - 如何在不对 MongoDB 的 $in 进行硬编码的情况下动态提供列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com