Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Duplicate documents in sharded environment

Received: by 10.59.1.65 with SMTP id be1mr543611ved.1.1349267769904;
        Wed, 03 Oct 2012 05:36:09 -0700 (PDT)
X-BeenThere: mongodb-user@googlegroups.com
Received: by 10.220.149.129 with SMTP id t1ls1063745vcv.0.gmail; Wed, 03 Oct
 2012 05:36:00 -0700 (PDT)
Received: by 10.52.70.82 with SMTP id k18mr138668vdu.1.1349267760045;
        Wed, 03 Oct 2012 05:36:00 -0700 (PDT)
Date: Wed, 3 Oct 2012 05:35:59 -0700 (PDT)
From: Gianfranco <gianfra...@10gen.com>
To: mongodb-user@googlegroups.com
Message-Id: <612a08ac-cda7-4c14-aa53-91dcd0900b60@googlegroups.com>
In-Reply-To: <CA+KgvabSOE0cgD=Uytp6m5j0f16nk0C+mcZa-X=SOPo8B+3U7Q@mail.gmail.com>
References: <CA+KgvaYoWBP+F08Cju8=bpwHa6R8uPcB3rMurg4NvbySP1jc=Q@mail.gmail.com>
 <9e1adf42-8599-4f55-b145-fc53076c8ed5@googlegroups.com>
 <CA+Kgvab3tyHrCNAUtEPHLDJ+AiORVcC_KHmV96yD_GSPqMUUwA@mail.gmail.com>
 <5c3d00ae-a6da-48a2-af50-1a3c1ac29c7d@googlegroups.com>
 <CA+KgvabVXu6j5KNTqV4ZYHNekjWRoQSx5KZx1jJOyhS_ue6Dmg@mail.gmail.com>
 <ecd09de1-d3f9-47e3-9f83-6334314d1905@googlegroups.com>
 <CA+KgvaasNuvTO7ZqcMxt88K9btqSXnrY6xf0p=FSn8sAaa=dsQ@mail.gmail.com>
 <0b837c96-37fc-4408-afaf-c05ca98a4325@googlegroups.com>
 <CA+KgvabtPaYYYdTkxkc4RumrGeAv=PodQ4oKJsrXYLNWcSXf6Q@mail.gmail.com>
 <249eee55-c42a-401d-9fe3-b0b3704106ac@googlegroups.com>
 <CA+KgvabSOE0cgD=Uytp6m5j0f16nk0C+mcZa-X=SOPo8B+3U7Q@mail.gmail.com>
Subject: Re: [mongodb-user] Re: Duplicate documents in sharded environment
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_114_23063600.1349267759499"

------=_Part_114_23063600.1349267759499
Content-Type: multipart/alternative; 
	boundary="----=_Part_115_9134006.1349267759499"

------=_Part_115_9134006.1349267759499
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Yes it does. It counts all the documents across the shards for that=20
collection (when connected to the mongoS)

On Wednesday, October 3, 2012 1:25:40 PM UTC+1, Patrick Scott wrote:
>
> I'm referring to the shell command db.<collection>.count(). Does it=20
> include orphaned documents?
>
> On Wed, Oct 3, 2012 at 6:07 AM, Gianfranco <gianf...@10gen.com<javascript=
:>
> > wrote:
>
>> Sorry, I'm not sure what count() function you're referring to.
>> The normal one on the shell? or a similar one on the script? which line?
>>
>> If you want to make sure you can go back incase a non duplicate is=20
>> deleted, as in similar situations, you should back up the datafiles or u=
se=20
>> mongoexport, specially if it's a production system.
>>
>> On Tuesday, October 2, 2012 5:18:43 PM UTC+1, Patrick Scott wrote:
>>
>>> I'm doing updates but not with upserts. I just want to make sure I'm=20
>>> deleting true orphaned documents. I have about 100000 out of ~83 millio=
n=20
>>> which isn't a lot. If collection.count() includes orphaned items then i=
t=20
>>> makes perfect sense for the global count to decrease as I delete orphan=
s. I=20
>>> just want to verify that behavior.
>>>
>>> On Tue, Oct 2, 2012 at 12:10 PM, Gianfranco <gianf...@10gen.com> wrote:
>>>
>>>> If you are doing updates with upserts, there is a Fix in 2.1.0 to=20
>>>> prevent this to happen again.
>>>> https://jira.mongodb.org/**browse/SERVER-4639<https://jira.mongodb.org=
/browse/SERVER-4639>
>>>>
>>>> The latest 2.1.x branch is 2.1.2
>>>>
>>>> If you're want to look into upgrading to the latest version (2.2.0)=20
>>>> please read the release notes on how to procede:
>>>> http://docs.mongodb.org/**manual/release-notes/2.2/#**
>>>> upgrade-shard-cluster<http://docs.mongodb.org/manual/release-notes/2.2=
/#upgrade-shard-cluster>
>>>>
>>>>
>>>> On Tuesday, October 2, 2012 4:40:40 PM UTC+1, Patrick Scott wrote:
>>>>
>>>>> My shards and mongos' are running 2.0.6.
>>>>>
>>>>> On Tue, Oct 2, 2012 at 11:30 AM, Gianfranco <gianf...@10gen.com>wrote=
:
>>>>>
>>>>>> The db.collection.count() from mongoS is a global operation, so it=
=20
>>>>>> has communicate with the shards containing that collection.
>>>>>>
>>>>>> What version of mongo are you running? all the same?
>>>>>>
>>>>>>
>>>>>> On Tuesday, October 2, 2012 2:35:48 PM UTC+1, Patrick Scott wrote:
>>>>>>
>>>>>>> How is db.collection.count() computed? I noticed that it was=20
>>>>>>> decreasing as orphaned documents were deleted. It scared me enough =
that I=20
>>>>>>> stopped the script but then I checked each shard individually for t=
he=20
>>>>>>> document count and together they equaled the result of a call to=20
>>>>>>> db.collection.count() from mongos.
>>>>>>>
>>>>>>> My guess is that count() reflects the total count of objects in the=
=20
>>>>>>> collection on each shard which may include orphaned documents.
>>>>>>>
>>>>>>> On Tue, Oct 2, 2012 at 5:12 AM, Gianfranco <gianf...@10gen.com>wrot=
e:
>>>>>>>
>>>>>>>> Hi Patrick,
>>>>>>>>
>>>>>>>> Sorry for the delay.
>>>>>>>>
>>>>>>>> Could you run this script with the path to the filename of=20
>>>>>>>> orphanage.js?
>>>>>>>>
>>>>>>>> Note: The script must be run from a 2.x shell.
>>>>>>>>          And you must connect to primary
>>>>>>>>
>>>>>>>> If it is in the current working directory, where you started mongo=
=20
>>>>>>>> shell, it will be:
>>>>>>>>    1
>>>>>>>>  load("orphanage.js")
>>>>>>>>
>>>>>>>> After, you'll see a series of options you can now run:
>>>>>>>>
>>>>>>>> Balancer.stop() -- Do this first, if it's not stopped already
>>>>>>>> Orphans.find('db.collection') =E2=80=93 Find orphans in a given na=
mespace
>>>>>>>> Orphans.findAll() =E2=80=93 Find orphans in all namespaces
>>>>>>>> Orphans.remove('db.collection'******) =E2=80=93 Remove all orphans=
 in a=20
>>>>>>>> namespace
>>>>>>>> Balancer.start()
>>>>>>>>
>>>>>>>> Please follow the directions and make sure the output of documents=
=20
>>>>>>>> to delete is correct before running remove.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wednesday, September 26, 2012 6:32:39 PM UTC+1, Patrick Scott=
=20
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> So how can I found out which shard "owns" the document?
>>>>>>>>>
>>>>>>>>> On Wed, Sep 26, 2012 at 12:01 PM, Gianfranco <gianf...@10gen.com>=
wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I'm assuming that you have an index *unique:true* and the=20
>>>>>>>>>> duplicates exist because of a migration failed from one shard to=
 another.
>>>>>>>>>> This resulted in 2 shards having the same data and the configs=
=20
>>>>>>>>>> didn't get updated.
>>>>>>>>>>
>>>>>>>>>> There isn't a single command which will fix this problem=20
>>>>>>>>>> unfortunately.
>>>>>>>>>>
>>>>>>>>>> If this is the case you'll need a script which finds and removes=
=20
>>>>>>>>>> orphaned documents.
>>>>>>>>>>
>>>>>>>>>> On Wednesday, September 26, 2012 1:24:01 PM UTC+1, Patrick Scott=
=20
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I have a 2 shard setup and I recently discovered duplicate=20
>>>>>>>>>>> documents between shards. I have turned off the balancer so it =
is not an=20
>>>>>>>>>>> issue with an in-progress balancer operation. Is there a tool t=
hat I can=20
>>>>>>>>>>> use to clean up those duplicates? If not, is there a command th=
at will=20
>>>>>>>>>>> determine which shard is the owner of the document?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Patrick
>>>>>>>>>>>
>>>>>>>>>>  --=20
>>>>>>>>>> You received this message because you are subscribed to the Goog=
le
>>>>>>>>>> Groups "mongodb-user" group.
>>>>>>>>>> To post to this group, send email to mongod...@googlegroups.com
>>>>>>>>>>
>>>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>>>> mongodb-user...@**googlegroups.**c****om
>>>>>>>>>>
>>>>>>>>>> See also the IRC channel -- freenode.net#mongodb
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --=20
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "mongodb-user" group.
>>>>>>>> To post to this group, send email to mongod...@googlegroups.com
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>> mongodb-user...@**googlegroups.**c**om
>>>>>>>> See also the IRC channel -- freenode.net#mongodb
>>>>>>>>
>>>>>>>
>>>>>>>  --=20
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "mongodb-user" group.
>>>>>> To post to this group, send email to mongod...@googlegroups.com
>>>>>> To unsubscribe from this group, send email to
>>>>>> mongodb-user...@**googlegroups.**com
>>>>>> See also the IRC channel -- freenode.net#mongodb
>>>>>>
>>>>>
>>>>>  --=20
>>>> You received this message because you are subscribed to the Google
>>>> Groups "mongodb-user" group.
>>>> To post to this group, send email to mongod...@googlegroups.com
>>>> To unsubscribe from this group, send email to
>>>> mongodb-user...@**googlegroups.com
>>>> See also the IRC channel -- freenode.net#mongodb
>>>>
>>>
>>>  --=20
>> You received this message because you are subscribed to the Google
>> Groups "mongodb-user" group.
>> To post to this group, send email to mongod...@googlegroups.com<javascri=
pt:>
>> To unsubscribe from this group, send email to
>> mongodb-user...@googlegroups.com <javascript:>
>> See also the IRC channel -- freenode.net#mongodb
>>
>
>
------=_Part_115_9134006.1349267759499
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Yes it does. It counts all the documents across the shards for that collect=
ion (when connected to the mongoS)<br><br>On Wednesday, October 3, 2012 1:2=
5:40 PM UTC+1, Patrick Scott wrote:<blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;">I'm referring to the shell command db.&lt;collection&gt;.count(). Doe=
s it include orphaned documents?<br><br><div class=3D"gmail_quote">On Wed, =
Oct 3, 2012 at 6:07 AM, Gianfranco <span dir=3D"ltr">&lt;<a href=3D"javascr=
ipt:" target=3D"_blank" gdf-obfuscated-mailto=3D"Ikszam2VuyQJ" class=3D"vt-=
p">gianf...@10gen.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Sorry, I'm not sure what count() function yo=
u're&nbsp;referring&nbsp;to.<div>The normal one on the shell? or a similar =
one on the script? which line?</div>
<div><br></div><div>If you want to make sure you can go back incase a non d=
uplicate is deleted, as in similar situations, you should back up the dataf=
iles or use mongoexport, specially if it's a production system.</div>
<div><br></div><div><div>On Tuesday, October 2, 2012 5:18:43 PM UTC+1, Patr=
ick Scott wrote:</div><blockquote class=3D"gmail_quote" style=3D"margin:0;m=
argin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
I'm doing updates but not with upserts. I just want to make sure I'm deleti=
ng true orphaned documents. I have about 100000 out of ~83 million which is=
n't a lot. If collection.count() includes orphaned items then it makes perf=
ect sense for the global count to decrease as I delete orphans. I just want=
 to verify that behavior.<br>

<br></div><div><div><div class=3D"gmail_quote">On Tue, Oct 2, 2012 at 12:10=
 PM, Gianfranco <span dir=3D"ltr">&lt;<a class=3D"vt-p">gianf...@10gen.com<=
/a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

If you are doing updates with upserts, there is a Fix in 2.1.0 to prevent t=
his to happen again.<div><a href=3D"https://jira.mongodb.org/browse/SERVER-=
4639" target=3D"_blank" class=3D"vt-p">https://jira.mongodb.org/<u></u>brow=
s<wbr>e/SERVER-4639</a><br>

</div><div><br></div><div>The latest 2.1.x branch is 2.1.2</div><div><br></=
div><div>If you're want to look into upgrading to the latest version (2.2.0=
) please read the release notes on how to procede:</div><div><a href=3D"htt=
p://docs.mongodb.org/manual/release-notes/2.2/#upgrade-shard-cluster" targe=
t=3D"_blank" class=3D"vt-p">http://docs.mongodb.org/<u></u>manual<wbr>/rele=
ase-notes/2.2/#<u></u>upgrade-<wbr>shard-cluster</a><br>

</div><div><div><br><br>On Tuesday, October 2, 2012 4:40:40 PM UTC+1, Patri=
ck Scott wrote:</div><blockquote class=3D"gmail_quote" style=3D"margin:0;ma=
rgin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
My shards and mongos' are running 2.0.6.<br><br></div><div><div><div class=
=3D"gmail_quote">On Tue, Oct 2, 2012 at 11:30 AM, Gianfranco <span dir=3D"l=
tr">&lt;<a class=3D"vt-p">gianf...@10gen.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">The db.collection.count() from mongoS is a g=
lobal operation, so it has communicate with the shards containing that coll=
ection.<div>


<br></div><div>What version of mongo are you running? all the same?<div><br=
><br>On Tuesday, October 2, 2012 2:35:48 PM UTC+1, Patrick Scott wrote:</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;bor=
der-left:1px #ccc solid;padding-left:1ex">


<div>How is db.collection.count() computed? I noticed that it was decreasin=
g as orphaned documents were deleted. It scared me enough that I stopped th=
e script but then I checked each shard individually for the document count =
and together they equaled the result of a call to db.collection.count() fro=
m mongos.<div>



<br></div></div><div><div>My guess is that count() reflects the total count=
 of objects in the collection on each shard which may include orphaned docu=
ments.<br></div><div><div><div><div><br><div class=3D"gmail_quote">
On Tue, Oct 2, 2012 at 5:12 AM, Gianfranco <span dir=3D"ltr">&lt;<a class=
=3D"vt-p">gianf...@10gen.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi Patrick,<div><br></div><div>Sorry for the=
 delay.</div><div><br></div><div>Could you run this script with the path to=
 the filename of orphanage.js?</div>



<div><br></div><div>Note: The script must be run from a 2.x shell.</div><di=
v>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;And you must connect to primary</div><d=
iv><br></div><div>If it is in the current working directory, where you star=
ted mongo shell, it will be:</div>



<div><div style=3D"line-height:17px;background-color:rgb(240,240,240);margi=
n-left:20px;font-family:Arial,FreeSans,Helvetica,sans-serif"><div style=3D"=
width:942px;margin-top:1em!important;margin-bottom:1em!important;overflow:a=
uto!important;font-size:1em!important">



<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" style=3D"font-varia=
nt:inherit;width:942px;font-size:1em!important;border-top-left-radius:0px!i=
mportant;border-top-right-radius:0px!important;border-bottom-right-radius:0=
px!important;border-bottom-left-radius:0px!important;background-image:none!=
important;float:none!important;min-height:auto!important;line-height:1.1em!=
important;outline:0px!important;overflow:visible!important;font-family:Cons=
olas,'Bitstream Vera Sans Mono','Courier New',Courier,monospace!important;m=
in-height:auto!important">



<tbody style=3D"border-top-left-radius:0px!important;border-top-right-radiu=
s:0px!important;border-bottom-right-radius:0px!important;border-bottom-left=
-radius:0px!important;background-image:none!important;float:none!important;=
min-height:auto!important;line-height:1.1em!important;outline:0px!important=
;overflow:visible!important;width:auto!important;font-size:1em!important;mi=
n-height:auto!important"><tr style=3D"border-top-left-radius:0px!important;=
border-top-right-radius:0px!important;border-bottom-right-radius:0px!import=
ant;border-bottom-left-radius:0px!important;background-image:none!important=
;float:none!important;min-height:auto!important;line-height:1.1em!important=
;outline:0px!important;overflow:visible!important;width:auto!important;font=
-size:1em!important;min-height:auto!important">



<td style=3D"border-top-left-radius:0px!important;border-top-right-radius:0=
px!important;border-bottom-right-radius:0px!important;border-bottom-left-ra=
dius:0px!important;background-image:none!important;float:none!important;min=
-height:auto!important;line-height:1.1em!important;outline:0px!important;ov=
erflow:visible!important;width:auto!important;font-size:1em!important;min-h=
eight:auto!important;color:rgb(175,175,175)!important">



<div style=3D"padding-right:0.5em!important;padding-left:1em!important;bord=
er-top-left-radius:0px!important;border-top-right-radius:0px!important;bord=
er-bottom-right-radius:0px!important;border-bottom-left-radius:0px!importan=
t;background-image:none!important;border-right-width:3px!important;border-r=
ight-style:solid!important;border-right-color:rgb(108,226,108)!important;fl=
oat:none!important;min-height:auto!important;line-height:1.1em!important;ou=
tline:0px!important;overflow:visible!important;text-align:right!important;w=
idth:auto!important;font-size:1em!important;min-height:auto!important;white=
-space:pre!important">



1</div></td><td style=3D"width:911px;border-top-left-radius:0px!important;b=
order-top-right-radius:0px!important;border-bottom-right-radius:0px!importa=
nt;border-bottom-left-radius:0px!important;background-image:none!important;=
float:none!important;min-height:auto!important;line-height:1.1em!important;=
outline:0px!important;overflow:visible!important;font-size:1em!important;mi=
n-height:auto!important">



<div style=3D"margin-top:0px!important;margin-right:0px!important;margin-bo=
ttom:0px!important;border-top-left-radius:0px!important;border-top-right-ra=
dius:0px!important;border-bottom-right-radius:0px!important;border-bottom-l=
eft-radius:0px!important;background-image:none!important;float:none!importa=
nt;min-height:auto!important;line-height:1.1em!important;outline:0px!import=
ant;overflow:visible!important;width:auto!important;font-size:1em!important=
;min-height:auto!important">



<div style=3D"padding-right:1em!important;padding-left:1em!important;border=
-top-left-radius:0px!important;border-top-right-radius:0px!important;border=
-bottom-right-radius:0px!important;border-bottom-left-radius:0px!important;=
background-image:none!important;float:none!important;min-height:auto!import=
ant;line-height:1.1em!important;outline:0px!important;overflow:visible!impo=
rtant;width:auto!important;font-size:1em!important;min-height:auto!importan=
t;white-space:pre!important">



<code style=3D"border-top-left-radius:0px!important;border-top-right-radius=
:0px!important;border-bottom-right-radius:0px!important;border-bottom-left-=
radius:0px!important;background-image:none!important;float:none!important;m=
in-height:auto!important;line-height:1.1em!important;outline:0px!important;=
overflow:visible!important;width:auto!important;font-family:Consolas,'Bitst=
ream Vera Sans Mono','Courier New',Courier,monospace!important;font-size:1e=
m!important;min-height:auto!important">load("orphanage.js")</code></div>



</div></td></tr></tbody></table></div></div><div><p style=3D"line-height:17=
px;margin-bottom:0px;font-family:Arial,FreeSans,Helvetica,sans-serif;margin=
-top:16px">After, you'll see a series of options you can now run:</p>



<p style=3D"line-height:17px;margin-bottom:0px;font-family:Arial,FreeSans,H=
elvetica,sans-serif;margin-top:16px">Balancer.stop() -- Do this first, if i=
t's not stopped already<br>Orphans.find('db.collection') =E2=80=93 Find orp=
hans in a given namespace<br>



Orphans.findAll() =E2=80=93 Find orphans in all namespaces<br>Orphans.remov=
e('db.collection'<u></u><u></u><u></u><wbr>) =E2=80=93 Remove all orphans i=
n a namespace<br>Balancer.start()</p><p style=3D"line-height:17px;margin-bo=
ttom:0px;font-family:Arial,FreeSans,Helvetica,sans-serif;margin-top:16px">



Please follow the directions and make sure the output of documents to delet=
e is correct before running remove.</p></div><div><br></div><div><br></div>=
<div><div>On Wednesday, September 26, 2012 6:32:39 PM UTC+1, Patrick Scott =
wrote:</div>



<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div>So how can I found out which s=
hard "owns" the document?<br><br></div><div class=3D"gmail_quote">



<div>On Wed, Sep 26, 2012 at 12:01 PM, Gianfranco <span dir=3D"ltr">&lt;<a =
class=3D"vt-p">gianf...@10gen.com</a>&gt;</span> wrote:<br>
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div>Hi,<div><br></div><div>I'm assumi=
ng that you have an index <i>unique:true</i> and the duplicates exist becau=
se of a&nbsp;migration&nbsp;failed&nbsp;from one shard to another.</div>




<div>This resulted in 2 shards having the same data and the configs didn't =
get updated.</div><div><br></div><div>There isn't a single command which wi=
ll fix this problem unfortunately.</div><div><br></div><div>If this is the =
case you'll need a script which finds and removes orphaned documents.</div>




<div><div><div><br>On Wednesday, September 26, 2012 1:24:01 PM UTC+1, Patri=
ck Scott wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-l=
eft:0.8ex;border-left:1px #ccc solid;padding-left:1ex">
I have a 2 shard setup and I recently discovered duplicate documents betwee=
n shards. I have turned off the balancer so it is not an issue with an in-p=
rogress balancer operation. Is there a tool that I can use to clean up thos=
e duplicates? If not, is there a command that will determine which shard is=
 the owner of the document?<div>





<br></div><div>Thanks,</div><div>Patrick</div>
</blockquote></div>

<p></p></div></div></div><span><font color=3D"#888888"><div>

-- <br>
You received this message because you are subscribed to the Google<br>
Groups "mongodb-user" group.<br></div>
To post to this group, send email to <a class=3D"vt-p">mongod...@googlegrou=
ps.com</a><div><br>
To unsubscribe from this group, send email to<br>
</div><a class=3D"vt-p">mongodb-user...@<u></u>googlegroups.<u></u>c<u></u>=
<u></u><wbr>om</a><div><br>
See also the IRC channel -- <a href=3D"http://freenode.net#mongodb" target=
=3D"_blank" class=3D"vt-p">freenode.net#mongodb</a><br>
</div></font></span></blockquote></div><br>
</blockquote></div></div><div><div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google<br>
Groups "mongodb-user" group.<br>
To post to this group, send email to <a class=3D"vt-p">mongod...@googlegrou=
ps.com</a><br>
To unsubscribe from this group, send email to<br>
<a class=3D"vt-p">mongodb-user...@<u></u>googlegroups.<u></u>c<u></u><wbr>o=
m</a><br>
See also the IRC channel -- <a href=3D"http://freenode.net#mongodb" target=
=3D"_blank" class=3D"vt-p">freenode.net#mongodb</a><br>
</div></div></blockquote></div><br></div></div></div></div></div>
</blockquote></div><div><div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google<br>
Groups "mongodb-user" group.<br>
To post to this group, send email to <a class=3D"vt-p">mongod...@googlegrou=
ps.com</a><br>
To unsubscribe from this group, send email to<br>
<a class=3D"vt-p">mongodb-user...@<u></u>googlegroups.<u></u>c<wbr>om</a><b=
r>
See also the IRC channel -- <a href=3D"http://freenode.net#mongodb" target=
=3D"_blank" class=3D"vt-p">freenode.net#mongodb</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><div><div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google<br>
Groups "mongodb-user" group.<br>
To post to this group, send email to <a class=3D"vt-p">mongod...@googlegrou=
ps.com</a><br>
To unsubscribe from this group, send email to<br>
<a class=3D"vt-p">mongodb-user...@<u></u>googlegroups.<wbr>com</a><br>
See also the IRC channel -- <a href=3D"http://freenode.net#mongodb" target=
=3D"_blank" class=3D"vt-p">freenode.net#mongodb</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><div><div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google<br>
Groups "mongodb-user" group.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"Ikszam2VuyQJ" class=3D"vt-p">mongod...@googleg=
roups.com</a><br>
To unsubscribe from this group, send email to<br>
<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"Ikszam2V=
uyQJ" class=3D"vt-p">mongodb-user...@<wbr>googlegroups.com</a><br>
See also the IRC channel -- <a href=3D"http://freenode.net#mongodb" target=
=3D"_blank" class=3D"vt-p">freenode.net#mongodb</a><br>
</div></div></blockquote></div><br>
</blockquote>
------=_Part_115_9134006.1349267759499--

------=_Part_114_23063600.1349267759499--