【发布时间】:2014-04-18 09:43:58
【问题描述】:
我构建了一个字符串,其中包含使用 PHP 的 mongodb 查询。我如何执行该查询。例如,让我们将我的字符串视为
$x = array(
'tag_id'=>'$value',
'content_id'=>'$content_id',
'createdby'=>'test',
'created_date'=>date('d-m-Y'))
现在这是我要执行的查询。如果我给这个字符串像这样mongocollection->insert($x),它的意思是mongodb exception, with no documents given。那么如何将此字符串转换为可执行语句
【问题讨论】:
-
为什么要构建字符串而不是仅使用本机代码?
-
@NeilLunn:iam 构建包含许多文档的查询。每个文档的不同之处在于
'KEY: tag_id'的值,我从一个数组中获取这些 tag_id 值。所以只有我正在构建一个查询。像这样"array( 'tag_id'=>'$value', 'content_id'=>'$content_id', 'createdby'=>'test', 'created_date'=>date('d-m-Y')), array( 'tag_id'=>'$value1', 'content_id'=>'$content_id', 'createdby'=>'test', 'created_date'=>date('d-m-Y')), array( 'tag_id'=>'$value2', 'content_id'=>'$content_id', 'createdby'=>'test', 'created_date'=>date('d-m-Y'))" -
那么,你为什么不使用本机代码?这是代码,而不是硬编码。这不是 SQL,因此您实际上可以使用 push 等动态构建数据结构。
-
如果我使用push,必须编译多个insert语句(请原谅我的无知,如果我错了),而不是我使用
batchInsert语句,单次,查询将被编译。跨度> -
不是 mongo $push。我说的是在代码中构建您的数据结构(即查询)。我不久前posted 的东西可能会作为一个更好的例子供你参考。
标签: php mongodb mongodb-php