db.collection.remove() не удаляет документ

У меня есть коллекция TextDocuments

/* 0 */
{
 name:"doc2",
 pages:[{
 pageNumber:"1",
 text:"This is first page text",


 },{
 pageNumber:"2",
 text:"This is second page text",


 },{
 pageNumber:"3",
 text:"This is third page text",


 }]
 }
 /* 1 */
 {
 name:"doc2",
 pages:[{
 pageNumber:"1",
 text:"This is first page text",


 },{
 pageNumber:"2",
 text:"This is second page text",


 },{
 pageNumber:"3",
 text:"This is third page text",


 }]
 }

Я хочу удалить документы из коллекции TextDocuments с именем = doc2, когда я запускаю следующий запрос в оболочке mongo

rohitkumar@ubuntuhost:~$ mongo
> use mydb
switched to db mydb
> db.TextDocuments.remove({"name":"doc2"})
WriteResult({ "nRemoved" : 1 })
>

Но во втором сценарии я создал сценарий оболочки

//File name collectionRemove.js
    var db =  connect("localhost:27017/mydb");
    var names= ["doc1","doc2"];


    for(i=0;i<names.length;i++){

    db['TextDocuments'].remove({"name":names[i]});

    }

при выполнении этого из оболочки монго с помощью команды ниже

rohitkumar@ubuntuhost:~$mongo mydb  --eval "load('collectionRemove.js')"

документы не удаляются. Любое решение?


person Rohit Kumar    schedule 07.05.2014    source источник
comment
Не зная фактического формата ваших документов, вы уверены, что запрос, который вы создаете, действителен?   -  person Lix    schedule 07.05.2014
comment
mycollection имеет свойство имени, и я пытаюсь удалить документ коллекции на основе свойства имени. Это работает, если я делаю это в оболочке монго, но не работаю со сценарием оболочки.   -  person Rohit Kumar    schedule 07.05.2014
comment
@RohitKumar Да .. Я вижу это из вашего кода. Я спрашиваю, действительно ли ваш запрос возвращает результаты... Можете ли вы запустить эти команды вручную и увидеть, как удаляются документы?   -  person Lix    schedule 07.05.2014
comment
@Lix, когда я запускаю db['mycollection'].remove({name:name1}) вручную, он удаляет документ из базы данных.   -  person Rohit Kumar    schedule 07.05.2014
comment
Короче говоря, покажите нам документы, содержащие { "name": "name1" } и т. д., которые вызывают проблему. Вы делаете что-то не так, потому что никто другой не может повторить это. Посмотрите внимательно и отредактируйте свой вопрос.   -  person Neil Lunn    schedule 07.05.2014
comment
@RohitKumar - Возможно, вы можете попробовать инициализировать оболочку mongo с соответствующей базой данных вместо того, чтобы иметь ее внутри скрипта?   -  person Lix    schedule 07.05.2014
comment
@NeilLunn Я объяснил весь сценарий. Любое решение?   -  person Rohit Kumar    schedule 07.05.2014
comment
Еще один совет: вы можете просто выполнить mongo collectionRemove.js с помощью используемого вами скрипта. Нет необходимости в --eval. Кроме того, почему бы не добавить немного отладки в скрипт, например, перед удалением: print(db['TextDocuments'].find({name:names[i]}).length()), чтобы показать количество совпадений, найденных до удаления?   -  person WiredPrairie    schedule 07.05.2014