2010-10-23 23 views
3

請注意,我的plans集合中的「user_id」不是object_id。我將它存儲在plans集合中以引用user_accounts集合中的用戶_id。我想過爲了引用用戶而在所有集合中存儲用戶名,但如果用戶希望更改他/她的用戶名,則這不是個想法。如何在mongodb中取出對象ID並進行搜索?

// Retrieve User ID 
$query = array("username" => $user_id); 
$fields = array("_id"); 
$user = $collection_user->findOne($query, $fields); 

// Retrieve plans made by user 
$query = array("user_id" => $user['_id']); 
$fields = array("plan_title"); 
$data = $collection_plans->find($query, $fields); 

如果我硬編碼_id到查詢正常工作如下:

// Retrieve plans made by user 
$query = array("user_id" => "4cc1790f6c0d49bf9424fc73"); 
$fields = array("plan_title"); 
$data = $collection_plans->find($query, $fields); 
+0

您是否嘗試使用var_dump($ user)來確保$ user ['_ id']實際存在? – mellowsoon 2010-10-23 03:34:49

回答

4

貌似我不得不將其轉換成字符串。

$uid = $user['_id'] . ""; 
+1

我認爲你是對的。 $ user ['_ id']的值應該是MongoId的一個實例,而不是一個字符串。注意轉換爲字符串的「乾淨」方式是$ uid =(string)$ user ['_ id']; – mellowsoon 2010-10-23 03:37:33

相關問題