8
votes

Comment générer un objet à aléatoirement dans le nœud JS

J'ai besoin de générer de manière aléatoire ObjectId dans le nœud Js.is Il y a un moyen de créer.


4 commentaires

Qu'entendez-vous par ObjectID ? math.random () ?


ID de 24 chiffres "5073C76A23CE3ABF0F000001" Comme ça.


Je n'ai aucune idée de ce que ce 12 octet ObjectID est, mais vous pouvez essayer de prendre une sous-chaîne d'un MD5 d'un nombre aléatoire?


Voici comment MongoDB génère des objectifs: github.com /mongodb/js-bson/blob/1.0-branch/lib/bson/ObjecteD .js


3 Réponses :


40
votes

Si vous voulez dire un objet Mongodb, essayez ceci:

var ObjectID = require('mongodb').ObjectID;

var objectId = new ObjectID();


0 commentaires

6
votes

Une autre façon de générer l'ID d'objet MongoDB est.

function objectId() {
    const os = require('os');
    const crypto = require('crypto');

    const secondInHex = Math.floor(new Date()/1000).toString(16);
    const machineId = crypto.createHash('md5').update(os.hostname()).digest('hex').slice(0, 6);
    const processId = process.pid.toString(16).slice(0, 4).padStart(4, '0');
    const counter = process.hrtime()[1].toString(16).slice(0, 6).padStart(6, '0');

    return secondInHex + machineId + processId + counter;
}


0 commentaires

0
votes

Création d'objectifs dans le MongoDB:

const {ObjectId} = require('mongodb'); 

// Method 1:
const myId = new ObjectId(); // No argument
// say, myId = ObjectId("507f1f77bcf86cd799439011")

// Access the Hexadecimal String from the ObjectId
console.log(ObjectId("507f1f77bcf86cd799439011").str); 
// 507f1f77bcf86cd799439011

// Method 2: Specify your own unique Hexadecimal String (12 bytes long)
const myId = new ObjectId("507f191e810c19729de860ea"); // with argument
// myId = ObjectId("507f191e810c19729de860ea")


0 commentaires