반응형
노드에서 '_id'로 MongoDB 항목을 검색하는 올바른 방법
사용 중MongoDb
(의 일부로)MongoJS
)에서.Node
다음은 MongoJS에 대한 문서입니다.
항목을 기준으로 노드 내에서 호출하려고 합니다._id
필드. 바닐라 사용시MongoDB
콘솔을 통해 다음 작업을 수행할 수 있습니다.
db.products.find({"_id":ObjectId("51d151c6b918a71d170000c7")})
그리고 그것은 내 입력을 정확하게 반환합니다.그러나 노드에서 동일한 작업을 수행할 때 다음과 같이 수행합니다.
db.products.find({"_id": ObjectId("51d151c6b918a71d170000c7")}, function (err, record) {
// Do stuff
});
알겠습니다ReferenceError: ObjectId is not defined
.
이를 위한 올바른 프로토콜은 무엇입니까?
ObjectId 기능을 사용하려면 먼저 다음과 같이 해야 합니다.
var ObjectId = require('mongodb').ObjectID;
몽구스를 사용하는 경우 다음을 시도할 수 있습니다.
var mongoose = require('mongoose')
usersSchema = mongoose.model('users'),
mongoose.Types.ObjectId("<object_id>")
usersSchema.find({"_id": mongoose.Types.ObjectId("<object_id>")}, function (err, record) {
// Do stuff
});
MongoJS를 사용하는 경우 다음 작업을 수행할 수 있습니다.
var ObjectId = mongojs.ObjectId;
그리고나서,
db.users.find({"_id": ObjectId(id)}, function(err, user){...}
또한 ObjectId 및 MongoClient를 재구성하여 코드를 최적화하고 더 읽기 쉽게 만들 수 있습니다.
const { MongoClient, ObjectId } = require('mongodb');
mongoose를 사용할 때 objectId를 활용하는 또 다른 방법이 있습니다.
// at the top of the file
const Mongoose = require('mongoose')
const ObjectId = Mongoose.Types.ObjectId;
// when using mongo to collect data
Mongoose.model('users', userSchema).findOne({ _id:
ObjectId('xyz') }, function (err, user) {
console.log(user)
return handle(req, res)
})
})
언급URL : https://stackoverflow.com/questions/17545311/correct-way-to-search-for-mongodb-entries-by-id-in-node
반응형
'source' 카테고리의 다른 글
응용 프로그램을 업데이트하려고 할 때 [INSTALL_FAILED_ALREADY_EXIST] 오류가 발생함 (0) | 2023.05.31 |
---|---|
SQL 대비 Azure 스토리지 테이블 (0) | 2023.05.31 |
Float에서 테두리 반지름이 있는 둥근 단추 / 단추 만들기 (0) | 2023.05.31 |
[파일로 이동...]이 있습니까? (0) | 2023.05.31 |
루비로 파일을 이동하려면 어떻게 해야 합니까? (0) | 2023.05.31 |