0

我正在尝试做与 MongoDB 等效的操作,它应该返回所有名为 Joe Bloggs 的用户,这些用户至少有一个地址,城市被定义为伦敦:

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) {
}

我想我真的很接近我只是被困在最后。

4

1 回答 1

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) {
}
于 2011-03-08T10:17:01.123 回答