laravel mongodb嵌套集合关系

时间:2016-08-08 13:26:22

标签: php mongodb laravel collections eloquent

我正在使用laravel mongodb集合,因为我有一些关系问题 这是我的用户集合,其中用户有多个地址,地址保存在另一个集合中,并且id保存在用户集合中

{
 "_id":ObjectId("52ffc33cd85242f436000001"),
 "contact": "987654321",
 "dob": "01-01-1991",
 "name": "Tom Benzamin",
 "address_ids": [
  ObjectId("52ffc4a5d85242602e000000"),
  ObjectId("52ffc4a5d85242602e000001")
    ]
}

获取用户信息及其地址信息我必须为用户和其他地址进行2次查询

可以通过使用雄辩的关系在单个查询中获取包含地址的用户信息。 对不起,我是mongodb系列的新手。

1 个答案:

答案 0 :(得分:2)

您无需在用户文档中保存地址的文档ID,就像您要实现的那样。 Laravel完全是干净的代码,不干净。

建立以下关系:

  • 用户> hasMany>地址

  • 地址> belongsTo>用户

要在Laravel中加载用户对象,包括所有地址对象,请使用预先加载(https://laravel.com/docs/5.3/eloquent-relationships#eager-loading)。

您可以在PHP中编写雄辩的查询:

cmake_minimum_required(VERSION 3.6)
project(0_Warmup)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILE src/Warmup.cpp)
link_libraries(lib/StanfordCPPLib)

add_executable(Warmup src/Warmup.cpp)

最诚挚的问候,

bdschr