มีฟังก์ชั่นในการเปลี่ยนสตริงเป็น objectId ในโหนดโดยใช้พังพอนหรือไม่? สคีมาระบุว่าบางสิ่งบางอย่างเป็น ObjectId แต่เมื่อมันถูกบันทึกจากสตริง mongo บอกฉันว่ามันยังคงเป็นเพียงแค่สตริง _id objectId("blah")
ของวัตถุเช่นจะแสดงเป็น
มีฟังก์ชั่นในการเปลี่ยนสตริงเป็น objectId ในโหนดโดยใช้พังพอนหรือไม่? สคีมาระบุว่าบางสิ่งบางอย่างเป็น ObjectId แต่เมื่อมันถูกบันทึกจากสตริง mongo บอกฉันว่ามันยังคงเป็นเพียงแค่สตริง _id objectId("blah")
ของวัตถุเช่นจะแสดงเป็น
คำตอบ:
คุณสามารถทำได้เช่น:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
คุณสามารถทำได้เช่นนี้:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
แก้ไข: มาตรฐานใหม่มี fromHexString มากกว่า fromString
mongoose.mongo
ฉัน มีใครยืนยันได้บ้าง
ตัดสินจากความคิดเห็นที่คุณกำลังมองหา:
mongoose.mongo.BSONPure.ObjectID.isValid
หรือ
mongoose.Types.ObjectId.isValid
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
mongoose.Types.ObjectId
และmongoose.mongo.ObjectId
? คุณสมบัติวัตถุของพังพอนนั้นแตกต่างกัน แต่อาจอ้างอิงถึงวิธีการเดียวกันภายใต้ โปรดแสดงความคิดเห็นเกี่ยวกับวิธีการอ้างอิง ณ วันที่VSTypes
mongo
ฉันไม่สามารถแก้ไขวิธีนี้ (เป็นที่ยอมรับว่าฉันค้นหาได้ไม่นาน)
mongoose.mongo.BSONPure.ObjectID.fromHexString
หากสคีมาของคุณคาดว่าคุณสมบัตินี้จะเป็นประเภท ObjectId การแปลงจะเป็นนัยอย่างน้อยก็น่าจะเป็นเช่นนี้ใน 4.7.8
คุณสามารถใช้บางสิ่งเช่นนี้ได้ แต่ให้ความยืดหยุ่นมากกว่าเดิม:
function toObjectId(ids) {
if (ids.constructor === Array) {
return ids.map(mongoose.Types.ObjectId);
}
return mongoose.Types.ObjectId(ids);
}
คุณสามารถใช้สิ่งนี้ได้เช่นกัน
const { ObjectId } = require('mongodb');
const _id = ObjectId("4eb6e7e7e9b7f4194e000001");
มันเป็นวิธีที่ง่ายที่สุดที่จะทำ
เพียงดูข้อมูลโค้ดด้านล่างหากคุณใช้ REST API ผ่านทาง express และ mongoose (ตัวอย่างสำหรับ ADD)
....
exports.AddSomething = (req,res,next) =>{
const newSomething = new SomeEntity({
_id:new mongoose.Types.ObjectId(), //its very own ID
somethingName:req.body.somethingName,
theForeignKey: mongoose.Types.ObjectId(req.body.theForeignKey)// if you want to pass an object ID
})
}
...
หวังว่ามันจะช่วย