mongo 콘솔에서 오브젝트 ID를 사용하여 오브젝트를 검색하려면 어떻게 해야 합니까?
이 질문은 C# 및 Perl에 대한 답변이지만 네이티브인터페이스에서는 답변되지 않았습니다.난 이게 효과가 있을 줄 알았어
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
쿼리에서 결과가 반환되지 않았습니다.4ecbe7f9e8c1c9092c000027을 찾았습니다.db.theColl.find()
ObjectId를 잡습니다.그 컬렉션에는 수천 개의 물건이 있다.
mongodb.org 웹사이트에서 찾을 수 있는 모든 페이지를 읽었지만 찾을 수 없었습니다.이게 이상한 일인가요?나한텐 꽤 정상적인 것 같아.
전혀 이상하지 않아, 사람들은 항상 이런 짓을 해.수집 이름이 올바르고(대문자와 소문자가 구분됨) ObjectId가 정확한지 확인하십시오.
매뉴얼은 이쪽
> db.test.insert({x: 1})
> db.test.find() // no criteria
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
> db.test.find({"_id" : ObjectId("4ecc05e55dd98a436ddcc47c")}) // explicit
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
> db.test.find(ObjectId("4ecc05e55dd98a436ddcc47c")) // shortcut
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
Node.js를 사용하는 경우:
var ObjectId = require('mongodb').ObjectId;
var id = req.params.gonderi_id;
var o_id = new ObjectId(id);
db.test.find({_id:o_id})
편집: 새 개체가 아닌 새 개체 ID(ID)로 수정되었습니다.아이디(ID)
특히 탭이 완성되어 있는 경우는, 한층 더 간단하게 할 수 있습니다.
db.test.find(ObjectId('4ecc05e55dd98a436ddcc47c'))
편집: 와도 동작합니다.findOne
명령어를 사용하여 출력을 향상시킬 수 있습니다.
큰따옴표를 삽입하지 못했습니다.정확한 쿼리는
db.theColl.find( { "_id": ObjectId("4ecbe7f9e8c1c9092c000027") } )
mongo 쉘을 작업하는 경우 다음을 참조하십시오: Tyler Brock의 답변
node.js를 사용하여 mongodb를 사용하는 경우 답변을 작성했습니다.
ID를 Id로 변환할 필요가 없습니다.ObjectId
. 사용방법 :
db.collection.findById('4ecbe7f9e8c1c9092c000027');
이 수집 메서드는 ID를 ObjectId로 자동 변환합니다.
한편, 다음과 같습니다.
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
예상대로 작동하지 않습니다.ID를 수동으로 변환했습니다.ObjectId
.
다음과 같이 할 수 있습니다.
let id = '58c85d1b7932a14c7a0a320d';
let o_id = new ObjectId(id); // id as a string is passed
db.collection.findOne({"_id":o_id});
이렇게 쓰는 게 좋을 것 같아
db.getCollection('Blog').find({"_id":ObjectId("58f6724e97990e9de4f17c23")})
mongo CLI를 열면 올바른 데이터베이스로 연결되고 인증됩니다.
다음 예시는 "products"라는 컬렉션에서 _id=568c28ffc4be30d44d0398e의 문서를 찾는 방법을 보여 줍니다.
db.products.find({"_id": ObjectId("568c28fffc4be30d44d0398e")})
방금 이 문제가 발생했는데 문서화된 대로 실행 중이었는데도 여전히 작동하지 않았습니다.
오류 메시지를 보고 특수 문자가 복사되지 않았는지 확인하십시오.에러가 발생하고 있었다.
SyntaxError: illegal character @(shell):1:43
캐릭터 43으로 이동했을 때 오브젝트 ID의 시작 부분이었고, 오픈 따옴표 뒤에 붙여 넣은 그대로였습니다.커서를 거기에 놓고 백스페이스를 눌렀는데 오픈인테이트를 삭제했어야 하는데 아무 일도 일어나지 않는 것 같았습니다.백스페이스를 다시 누르면 오픈인테이트가 삭제되고 다시 인용문을 삽입하여 쿼리를 실행했더니 완전히 똑같아 보였는데도 효과가 있었습니다.
WebMatrix에서 개발을 하고 있었는데 콘솔에서 오브젝트 ID를 복사했습니다.WebMatrix 콘솔에서 복사할 때마다 오류가 발생할 수 있는 보이지 않는 문자가 나타날 수 있습니다.
MongoDB Stitch 기능에서는 다음과 같이 BSON을 사용하여 수행할 수 있습니다.
하다를 사용하세요.ObjectId
다음 예시와 같이 BSON 유틸리티 패키지의 도우미입니다.
var id = "5bb9e9f84186b222c8901149";
BSON.ObjectId(id);
★★★의 Pythonists
:
import pymongo
from bson.objectid import ObjectId
...
for row in collectionName.find(
{"_id" : ObjectId("63ae807ec4270c7a0b0f2c4f")}):
print(row)
Objectid 메서드를 사용하려면 Import할 필요가 없습니다.그것은 이미 mongodb 오브젝트에 있다.
var ObjectId = new db.ObjectId('58c85d1b7932a14c7a0a320d');
db.yourCollection.findOne({ _id: ObjectId }, function (err, info) {
console.log(info)
});
간단한 조작:
db.getCollection('test').find('4ecbe7f9e8c1c9092c000027');
언급URL : https://stackoverflow.com/questions/8233014/how-do-i-search-for-an-object-by-its-objectid-in-the-mongo-console
'programing' 카테고리의 다른 글
커스텀 필터에 Java Configuration을 사용하여 Authentication Manager를 삽입하는 방법 (0) | 2023.03.07 |
---|---|
워드프레스 nginx 리다이렉트루프 (0) | 2023.03.07 |
WordPress - PHP 경고 스트림을 열지 못했습니다.해당 파일 또는 디렉토리(advanced-cache.php)가 없습니다. (0) | 2023.03.07 |
동일한 도메인 사이트 간 쿠키 공유 - 헤드리스/디커플링된 CMS (0) | 2023.03.07 |
useEffect에서 종속 어레이를 제공하지 않는 것과 빈 어레이의 차이점은 무엇입니까? (0) | 2023.03.07 |