我有mongodb的以下命令
db.products.find().forEach(
function(x) {
db.autocomplete.insert({
"_id": x.name
});
db.autocomplete.insert({
"_id": x.author_name
});
}
);
这基本上为Autocomplete / Autosuggest单词创建了一个集合。
如何使用PHP运行此命令?对于库中的每个命令,没有内置功能。</ p>
我知道,有http://php.net/manual/de/mongodb.command.php,但我不明白,如何在数组结构中运行上面的命令
答案 0 :(得分:0)
我还没有对它进行过测试,但它必须是这样的:
$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
返回null,因为我们并不关心值。 finalize
是可选的。它确保值为null。否则它可能包含一些残留垃圾。