[英]Stored Javascript in MongoDB
我正在嘗試使用存儲的JavaScript在MongoDB中存儲查詢。
現在看起來像這樣:
$collection = $db->$app_id;
$query = $collection->find( $filterQuery );
$db->system->js->save(array(
"_id" => "qo8qu0",
"value" => new MongoCode("function() { return array($query) }")
));
然后我執行它:
echo "<pre>";
print_r($test = $db->execute("qo8qu0()"));
echo "</pre>";
但是,我收到此錯誤: Catchable fatal error: Object of class MongoCursor could not be converted to string in /var/www/dev/classes/EmailMessaging.php on line 91
第91行是此行(如上), "value" => new MongoCode("function() { return array($filterQuery) }")
如果我使用count( $filterQuery );
而不是find( $filterQuery );
它可以正常工作並返回正確的號碼。
我如何使其工作,以便在使用find
時返回數組?
謝謝
這是因為您對代碼進行了評估。 它正在對此進行評估:
$query = $collection->find( $filterQuery );
因此, $query
是一個MongoCursor
,然后您嘗試將該類連接成一個字符串:
new MongoCode("function() { return array($query) }")
您需要像這樣做所有事情:
return $this->execute('function(){ return db.collection.find(filter); }', array('filter'=>array('_id'=>1)));
count
之所以有效是因為它返回一個可以添加到字符串中的int
。
方式:
$db->system->js->save(array(
"_id" => "qo8qu0",
"value" => new MongoCode("function() { return db.collection.find(filter).toArray() }")
));
然后在您的應用中:
$test = $db->execute("qo8qu0()", array('filter'=>array('_id'=>1)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.