有什么办法可以修改find查询中where-clause中的mongo值吗?如何在查询中的where子句中修改Mongo值?
这是一个我现在用:
$db->users->findOne(array("redirect_uri" => $arrParsedUrl['host']));
- 在这种情况下,我需要确保前面插入到数据库中的值是唯一的URL的主机部分。
我想什么做的是成才这样的(但它不工作):
$db->users->findOne(array(parse_url("redirect_uri")['host'] => $arrParsedUrl['host']));
- 在这种情况下,我将能够从一开始就插入了完整的URL数据库。查询中的“parse_url”函数确保只有主机部分被实际比较。
任何想法如何实现类似的东西?
编辑: 我不想更新数据库中的值。只修改与输入值比较的where子句中使用的数据库中的值。
输入值将始终是URL的主机部分。
EDIT2:
- 我有一个集合称为用户的几个文件。
- 所有文档都有一个名为“redirect_uri”的字段,其中包含一个URL。
- 当我使用url作为输入调用php函数时,我想返回文档,其中输入URL的主机部分与文档中“redirect_uri”的主机部分相同。 例如http://www.foo.com/bananas(“redirect_url”)= http://www.foo.com/apples(输入URL)
- 如何查询MongoDB以获取“redirect_url”的主机部分与输入URL的主机部分相同的文档?将输入URL修改为www.foo.com并不是问题,但是如何以相同的方式修改“redirect_url”部分以使查询给我一个正确答案?
你想实现什么?我不明白你的榜样。 –