我想將我自己的唯一值插入到mongodb $id
字段 我已經擁有一個唯一的密鑰,我不想佔用額外的空間和另一個索引。
我該如何用PHP API做到這一點?
我想將我自己的唯一值插入到mongodb $id
字段 我已經擁有一個唯一的密鑰,我不想佔用額外的空間和另一個索引。
我該如何用PHP API做到這一點?
檢查此鏈接
http://www.mongodb.org/display/DOCS/Indexes#Indexes-UniqueIndexes
只要你能保證唯一性,你不會受限於使用默認的「_id」的MongoDB用品。
因此,這取決於您如何生成此號碼。如果你想在MongoDB中存儲這個數字,那麼你可以將它存儲在一個單獨的集合中,併爲每個需要的新URL添加它。
使用$ inc動詞可以實現遞增字段,或者您可能想要了解MongoDB如何自動更新或增加值。 Unique IDs with mongodb
上面的文檔解釋這在一般的方式,而是給你一個具體的PHP的例子中,你只需設置_id價值,您生成的ID,當你創建文檔:
<?php
$mongo = new Mongo();
$collection = $mongo->dbName->collectionName;
$id = your_id_generator(); // I assume you have one
$collection->save(array('_id' => $id, 'foo' => 'bar'));
print_r($collection->findOne(array('_id' => $id)));
我寫的一個爲php生成自動增量值的類php 您可以在gitgub https://github.com/snytkine/LampCMS 上查看我的項目並查找/ lib/Lampcms/MongoIncrementor類。 它基本上跟蹤每個集合「nextValue」的值
對我很好,也許它也適合你。
也可以隨意檢查我的類,我大量使用MongoDB和php,也許你可以從代碼中學到東西,或者可以顯示/教我一些很酷的mongo/php代碼。
希望這會有所幫助。
$collection->save(array('_id' => new MongoId('my_mongo_id'), 'foo' => 'bar'));
這是行不通的,但你甚至不必使用MongoID類。你可以使用自己的散列作爲* _id *值 – dtbarne 2012-06-28 01:56:30