我有一个带有用户表的关系数据库,并且有用户ID等。但是评论系统存储在Mongo中并且
$author = new Author();
$userID = 1;
$author->setId( new \MongoId( $userID ) ); <--- different ID generated everytime
$discussion = new Discussion();
$discussion->setCreatedAt(new \DateTime());
$discussion->setAuthor($author);
每次生成的ID都不同,因此我的值为5082a694253b4a1201000000,5082a55e253b4a1f05000000。
如何与用户ID相关联,例如用户ID 1?或者应该忘记全新的MongoID业务,只将用户ID存储在文档中?
答案 0 :(得分:3)
public MongoId :: __ construct([string $ id = NULL])
$ ID: 用作id的字符串。必须是24个十六进制字符。如果将无效字符串传递给此构造函数,构造函数将忽略它并创建新的id值。
这就是为什么,即使你给了MongoId一个id,它也不适合 24个十六进制字符。所以MongoId忽略它并生成一个新的。
我认为你只需要按原样定义UserId:
$author = new Author();
$author->setUserId($userID);