MongoDB PHP 的库 运行 服务器上的 foreach 命令
MongoDB library for PHP run foreach command on server
我有以下 mongodb
命令
db.products.find().forEach(
function(x) {
db.autocomplete.insert({
"_id": x.name
});
db.autocomplete.insert({
"_id": x.author_name
});
}
);
这基本上为 Autocomplete/Autosuggest 个单词创建了一个集合。
如何使用 PHP 运行 这个命令?库中没有 du forEach 命令的内置函数。
我知道,有http://php.net/manual/de/mongodb.command.php,但我不明白,如何在数组结构运行上面的命令
我没测试过,但肯定是这样的:
$q = new MongoDB\Driver\Command([
'mapreduce' => 'products',
'map' => 'function () { emit(this.name, 1); emit(this.author_name, 1);}',
'reduce' => 'function () { return null; }',
'finalize' => 'function () {return null}',
'out' => ['reduce' => 'autocomplete']
]);
map
将 name 和 author_name 作为具有任意值的键发出。 reduce
returns null,因为我们不关心值。 finalize
是可选的。它确保值为空。否则它可能包含一些残留垃圾。
我有以下 mongodb
命令db.products.find().forEach(
function(x) {
db.autocomplete.insert({
"_id": x.name
});
db.autocomplete.insert({
"_id": x.author_name
});
}
);
这基本上为 Autocomplete/Autosuggest 个单词创建了一个集合。
如何使用 PHP 运行 这个命令?库中没有 du forEach 命令的内置函数。
我知道,有http://php.net/manual/de/mongodb.command.php,但我不明白,如何在数组结构运行上面的命令
我没测试过,但肯定是这样的:
$q = new MongoDB\Driver\Command([
'mapreduce' => 'products',
'map' => 'function () { emit(this.name, 1); emit(this.author_name, 1);}',
'reduce' => 'function () { return null; }',
'finalize' => 'function () {return null}',
'out' => ['reduce' => 'autocomplete']
]);
map
将 name 和 author_name 作为具有任意值的键发出。 reduce
returns null,因为我们不关心值。 finalize
是可选的。它确保值为空。否则它可能包含一些残留垃圾。