我正在尝试相当于MongoDB,它应该返回所有名为Joe Bloggs的用户,这些用户至少有一个地址,其中City被定义为伦敦:
db.users.findOne() {
name : "Joe Bloggs",
addresses : [{city: "London"}]
}
使用Kohana 3 PHP模块Mango:https://github.com/Wouterrr/MangoDB
我可以根据顶级对象返回结果,如下所示:
foreach(Mango::factory('users', array(
'name' => 'Joe Bloggs',
))->load(FALSE) as $user) {
}
但我无法弄清楚如何根据数组中的对象返回结果,我尝试过以下各种变体:
foreach(Mango::factory('users', array(
'name' => 'Joe Bloggs',
'addresses' => array('city' => 'London'),
))->load(FALSE) as $user) {
}
和
foreach(Mango::factory('users', array(
'name' => 'Joe Bloggs',
'addresses.$.city' => 'London',
))->load(FALSE) as $user) {
}
我觉得我很亲近,我只是坚持到最后。
答案 0 :(得分:1)
我不熟悉您正在使用的库,但是从shell中您只需执行此操作:
db.users.find({"name" : "Joe Bloggs", "addresses.city" : "London"});
所以最有可能的是,你要找的是:
foreach(Mango::factory('users', array(
'name' => 'Joe Bloggs',
'addresses.city' => 'London',
))->load(FALSE) as $user) {
}