我想将自己的唯一值插入mongodb $id
字段
我已经有了一个独特的密钥,我不想占用额外的空间与另一个索引。
如何使用PHP API执行此操作?
答案 0 :(得分:2)
$collection->save(array('_id' => new MongoId('my_mongo_id'), 'foo' => 'bar'));
答案 1 :(得分:1)
上面的文档以一般方式解释了这一点,但是为了给你一个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)) );
答案 2 :(得分:0)
检查此链接
http://www.mongodb.org/display/DOCS/Indexes#Indexes-UniqueIndexes
只要您能保证唯一性,您就不会受限于使用默认的“_id”MongoDB耗材。
因此,由您决定如何生成此数字。如果您想将此数字存储在MongoDB中,那么您可以将其存储在单独的集合中,并为每个所需的新URL增加它。
通过使用$ inc动词来增加字段,或者您可能想要了解MongoDB如何以原子方式更新或增加值。 Unique IDs with mongodb
答案 3 :(得分:-1)
我写了一个类来为php生成Mongo的自动增量值 你可以在gitgub上查看我的项目https://github.com/snytkine/LampCMS 并查找/ lib / Lampcms / MongoIncrementor类。 它基本上跟踪每个集合的“nextValue”值
非常适合我,也许它对你也有用。
也随意检查我的课程,我使用MongoDB和php,也许你可以从代码中学到一些东西,或者可以展示/教我一些很酷的mongo / php代码。
希望这有帮助。