MongoDB中有findAndModify命令来使用自动递增数字而不是默认ID,但我不知道如何将它用于PHP驱动程序(我不确定它是否支持在所有)。MongoDB中ID的序列号
0
A
回答
2
好吧,如果你需要存储增量值,我建议你使用其他字段而不是mongodb _id字段mongodb使用这些生成的id返回一些(我相信很多,如果不是全部的话)类型的查询,特别是如果你有一个多集群设置,那么它肯定会使用_id字段来定位数据所在的物理磁盘(我相信使用散列表或某种这样的技术 - 并不完全与mongo内核的引擎盖下操作一致)。简而言之,请将其设计为一个自动生成的参考字段。
0
<?php
$m = new MongoClient();
// select a database
$db = $m->seq;
// select a collection (analogous to a relational database's table)
$collection = $db->counters;
$user_collection = $db->user;
/**********Function to auto increment seq************/
function getNextSequence($name){
global $collection;
$retval = $collection->findAndModify(
array('_id' => $name),
array('$inc' => array("seq" => 1)),
null,
array(
"new" => true,
)
);
return $retval['seq'];
}
$db_array=array('_id' => getNextSequence("userid"), 'name' => 'debojit');
$user_collection->insert($db_array);
相关问题
- 1. Id的序列号
- 2. 表中的多个序列ID号
- 3. 在mongoDB中生成序列号
- 4. MongoDB中的序列
- 5. MongoDB C#:ID序列化最佳模式
- 6. 使用MongoDB时引号的ID $ setEquals
- 7. MySQL列ID号
- 8. MongoDB的反序列化在C#中,当自定义ID字段
- 9. MongoDB中选择其中阵列场ID
- 10. mongodb搜索id列表
- 11. 按序列分配ID号码
- 12. 显示器ID和序列号
- 13. MongoDB(PHP) - 自定义“id”和OrderWith编号
- 14. id属性的C#MongoDB的反序列化
- 15. ddl2hbm中id的序列值
- 16. 获取Linux中的主板设备ID和BIOS序列号
- 17. 如何在SAP B1中生成唯一的ID /序列号?
- 18. 在pg-promise中插入带有序列号的id
- 19. MongoDB中的重复ID
- 20. MongoDB - 从每个序列号列出一个文件
- 21. 序列号的JPA序列
- 22. 序列/序列号
- 23. 查询MongoDB中包含列表中的id的文档
- 24. MySQL的id序列
- 25. UDP中的序列号
- 26. mapreduce中的序列号
- 27. XSLT 1.0中的序列号
- 28. 一对中的序列号
- 29. 在PHP中的序列号
- 30. Rails中的序列号
在分布式环境中很难生成增量ID。我建议使用唯一生成的id,如objectId而不是增量。 –
问题是我想将它们用于网络文章,而长ID将成为我网址的一部分,这并不是很好。这就是我希望使用类似sql的auto_increment的原因primary_key – Googlebot
MB This post - > http://shiflett.org/blog/2010/jul/auto-increment-with-mongodb会帮助你。但我认为objectId看起来好,即使在URL中) –