1

从几个小时开始,我试图在我的本地设置的 MongoDB 集合中添加批量数据,除了一个或多个键的唯一索引之外,所有的都设置好了:(

我用过这个:

ensureIndex({appid:1, userid:1}, {unique:true, dropDups:true, background:true})

然后这个(因为我猜出于某种原因,多键索引不起作用)

ensureIndex({userid:1}, {unique:true, dropDups:true, background:true})

使用上述行后,我尝试从 php 脚本中插入数百万行(通过 insert 和 batchInsert),并且每次都存在重复的用户 ID :'( 请在这方面指导我 :(

4

2 回答 2

1

我注意到 ensureIndex 不会覆盖现有索引。相反,我认为您必须先删除现有索引,然后运行 ​​ensureIndex。

于 2011-09-14T02:39:10.387 回答
0

查看并确保已创建索引可能是个好主意。默认情况下,写入操作(如创建索引)是一劳永逸的,不等待错误/成功。这可能是驱动程序(php 客户端库)中的错误。

你可以跑

db.coll.getIndexes()

列出集合的索引。

于 2010-11-20T19:04:32.760 回答