programing

MongoDB 콘솔에서 _id로 삭제

showcode 2023. 3. 26. 11:56
반응형

MongoDB 콘솔에서 _id로 삭제

MongoDB 콘솔에서 ID별로 레코드를 삭제하려면 어떻게 해야 합니까?여기 제 컬렉션이 있습니다.

[ 
  {
     "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
     "name" : "Gazza"
  },
  {
     "_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
     "name" : "Dave",
     "adminOf" : { },
     "email" : "email@email.com"
  }
]

또, 지금까지 사용해 본 결과, 동작하지 않는 커맨드는 다음과 같습니다.

db.test_users.remove( {"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}});
db.test_users.remove( {"_id":{"$oid":"4d513345cc9374271b02ec6c"}});
db.test_users.remove( {"_id":"4d512b45cc9374271b02ec4f"});
db.test_users.remove( {"_id":new ObjectId("4d512b45cc9374271b02ec4f")});

이름에 의한 삭제는 다음과 같이 동작합니다.

db.test_users.remove( {"name":"Gazza"});

이것은 mongodb.org의 브라우저 셸에 기재되어 있습니다.

감사해요.

아주 가까워요.이 조작은 유효합니다.

db.test_users.deleteOne( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});

즉, ObjectId에는 새로운 것이 필요하지 않습니다.

에서는, 「 」, 「 」/「 」가 되고 있는 것에 해 주세요.remove()는 폐지되어 있습니다.deleteOne ★★★★★★★★★★★★★★★★★」deleteMany대신 사용해야 합니다.

ID 목록으로 삭제할 경우 이 방법이 적합합니다.

db.CollectionName.remove({
    "_id": {
        $in: [
            ObjectId("0930292929292929292929"),
            ObjectId("0920292929292929292929")
        ]
     }
}) 

예에서 _id는 객체이므로 객체를 전달하기만 하면 됩니다.

'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})'

이거면 될 것 같아

편집: 컴파일된 것을 확인하기 위해 후행 패런을 추가했습니다.

답변은 mongodb.org의 웹 콘솔/셸이 예상과 다르게 동작한다는 것입니다.집에 설치되어 있는 버전은 문제없이 정상적으로 동작했습니다.즉, 자동 생성된 _id는 다음과 같이 웹 쉘에 저장됩니다.

"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },

집에서 동일한 문서 설정과 자동 생성된 _id가 다음과 같이 저장되었습니다.

"_id" : ObjectId("4d5192665777000000005490")

쿼리는 후자에 대해 문제없이 작동했습니다.

먼저 오브젝트를 취득하다mongodb ObjectId = require(mongodb)의 ID 함수입니다.오브젝트 ID;

삭제 기능을 사용하여 _id를 호출할 수 있습니다.

"_id" : ObjectId ("4d519266770000005490")

복제 세트에 여러 mongodb 노드가 있습니까?

(Robomongo gui mongo 쉘을 사용하여 사용하고 있습니다.다른 경우도 마찬가지입니다) 올바른 삭제 구문을 찾았습니다.

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")})

...복제 세트의 기본 노드에 연결하지 않으면 작동하지 않습니다.

저도 방금 이걸 접한 적이 있는데, 이 변형이 효과가 있었어요.

db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")})
db.collection("collection_name").deleteOne({_id:ObjectId("4d513345cc9374271b02ec6c")})

이 게시물은 오래되었지만 collection.remove는 권장되지 않습니다. collection.delete_one대신 사용해야 합니다!

자세한 내용은 #remove를 참조하십시오.

다음과 같은 더미 컬렉션이 있다고 가정합니다.

{ "_id" : ObjectId("5ea53fedaa79db20d4e14284"), "item" : "planner", "qty" : 75 }

사용방법:

db.inventory.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })

다음과 같은 응답으로 삭제됩니다.

{ "acknowledged" : true, "deletedCount" : 1 }

바로 그거야.

db.getCollection("test_users").deleteOne({_id: new ObjectId("4d512b45cc9374271b02ec4f")})

Attribution : 공평하게 말하면 이것은 GUI 클라이언트인 "러시아어"에서 사용되는 구문입니다.제 것은 _id가 없는 나쁜 "업버트"에 의한 잠복적인 원인이었습니다.고유한 인덱스를 추가할 때만 표시됩니다.

솔루션 및 예:

1- C:\MongoDB\Server\3.2\bin>mongo(아직 데이터베이스에 연결되어 있지 않으므로 명령어를 발행하지 마십시오.데이터베이스 서버 mongodb에만 연결되어 있습니다).

2-

show dbs analytics_database 0.000GB 로컬 0.000GB test_database 0.000GB

3-

db test_switched to db test_switched 를 사용합니다.

4-

db.Collection.remove("_id": ObjectId("5694a3590f6d451c15002e")), 1); WriteResult("nRemoved" : 1 )

WriteResult({nRemoved" : 1 })가 0이 아닌 1임을 알 수 있습니다.

다 했어요.

키워드 오브젝트 ID를 전달할 필요가 없는 새로운 구문이 있습니다.이렇게 통과하면 됩니다.

db.orders.remove({"_id":"62514d42f5aec503b2e0f2a9"})

다음과 같이 remove() 메서드를 실행합니다.

db.student.remove({ "_id" : ObjectId("627f593641bcd9e215bc949d")})
OUTPUT : WriteResult({ "nRemoved" : 1 })

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/4932928/remove-by-id-in-mongodb-console

반응형