2017-05-04 3 views
1

사용자라는 컬렉션 이름이 있습니다. 이 컬렉션에는 총 6 개의 문서가 있습니다. "name"이라는 열 이름 중 하나를 사용하여 3 개의 문서를 삭제하고 싶습니다. 나는이 쿼리 사용 :mongodb에서 여러 문서를 삭제하는 방법은 무엇입니까?

db.users.deleteMany([ 
{ 
"name":"viki" 
}, 
{ 
"name" : "vino" 
}, 
{ 
"name" : "naranyamoorthy" 
} 
]) 

을하지만 오류가 누군가가 나를 도울 수있어?

다음 문서가 있습니다. viki, vino, naranyamoorthy라는 이름을 가진 3 개의 문서를 삭제하고 싶습니다.

{ "_id" : ObjectId("58934f10c7592b1494fd9a4d"), "name" : "viki", "age" : 100, "subject" : [ "c", "node.js", "java" ], "address" : { "city" : "chennai", "state" : "tamilnadu", "pincode" : "123", "district" : [ "thambaram" ] } } 
    { "_id" : ObjectId("58934f57e8796616482b48d1"), "name" : "vino", "age" : 21, "subject" : [ "Bootstrap", "j2ee", "java", null, "node" ], "address" : { "city" : "Antartica", "state" : "USA", "pincode" : "456", "country" : "USA", "core" : [ "alliswell" ] } } 
    { "_id" : ObjectId("58934f8d09a2cb0d0c6f6af5"), "name" : "ranjith", "age" : 12, "subject" : [ "c++", "php", "java" ], "address" : { "city" : "japan", "state" : "UK", "pincode" : "45685" }, "subject[2]" : "php" } 
    { "_id" : ObjectId("58955fd44b2ba9078463d2a7"), "name" : "waseem", "age" : 200, "subject" : [ "c++", "c", "Analysis" ], "address" : { "city" : "Dubai", "state" : "UAE", "pincode" : "5820", "country" : [ "USA" ] } } 
    { "_id" : ObjectId("589561109b03d692c45114ef"), "name" : "sunadarpichai", "age" : 22, "subject" : [ "c", "node.js", "c++", "Android programming" ], "address" : { "city" : "losAngeles", "state" : "USA", "pincode" : "12341", "district" : "thambaram" } } 
    { "_id" : ObjectId("58956389362992d7976510d4"), "name" : "naranyamoorthy", "age" : 21, "subject" : [ "Bootstrap", "node.js", "j2ee", "javascript" ], "address" : { "city" : "Afganistan", "state" : "tamilnadu", "pincode" : "9597653749", "country" : "USA", "core" : [ "alliswell" ] } } 

답변

2

당신은 삭제하려는 문서와 일치 deleteMany 단일 쿼리 개체를 전달해야합니다. 이 경우 $in을 사용할 수 있습니다 : 문서를 삭제

db.users.deleteMany({name: {$in: ["viki", "vino", "naranyamoorthy"]}}) 
+0

감사합니다 ... 완벽한 동작 ... – vigneshRavi

+0

무슨 일이 일어 났습니까? – vigneshRavi

+0

kob 나는 내 문제를 해결했기 때문에 당신의 대답도 받아 들였다. 다른 것은 nodejs의 MQTT 모듈에 대해 알고있다. 이 모듈을 사용하여 하나의 nodejs 앱에서 다른 앱으로 데이터를 전송할 수 있습니까? – vigneshRavi

0

반복 방법.

var deleteNames = ["viki","vino", "naranyamoorthy" ]; 
deleteNames.forEach(deleteDocument); 
function deleteDocument(item, index) { 
    try {   
    db.collection.deleteMany({ 
     "name":item 
    }); 

    } catch (e) { 
    print (e); 
    } 
} 
관련 문제