У меня есть коллекция 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')"
документы не удаляются. Любое решение?
{ "name": "name1" }
и т. д., которые вызывают проблему. Вы делаете что-то не так, потому что никто другой не может повторить это. Посмотрите внимательно и отредактируйте свой вопрос. - person Neil Lunn   schedule 07.05.2014mongo collectionRemove.js
с помощью используемого вами скрипта. Нет необходимости в--eval
. Кроме того, почему бы не добавить немного отладки в скрипт, например, перед удалением:print(db['TextDocuments'].find({name:names[i]}).length())
, чтобы показать количество совпадений, найденных до удаления? - person WiredPrairie   schedule 07.05.2014