如何在 mongodb 控制台中使用 set(data structure)?
How to use set(data structure) in mongodb console?
据我所知,mongodb 控制台有一个集成的 javascript 解释器,所以我的问题是为什么这段代码在有效 javascript 时不起作用:
//db = connect("localhost:27017/tecnicas")
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
diaFavorito = ["lunes", "martes", "miercoles", "sabado"]
sexo = ["hombre", "mujer"];
heladoFavorito = ["vainilla", "chocolate", "fresa", "coco"]
for(i = 0; i < 20; i++){
print(db.usuarios.insert({
fday: diaFavorito[getRandomInt(0, diaFavorito.length-1)],
genero: sexo[getRandomInt(0, sexo.length-1)],
fice: heladoFavorito[getRandomInt(0, heladoFavorito.length-1)],
indice: i+1,
ingresos: getRandomInt(12000, 120000)
}))
}
// SECOND PART
paises = ["Mexico", "USA", "Portugal", "Nepal", "Argelia", "Chile"]
for(i = 0; i < 20; i++){
numeroDePaisesVisitados = getRandomInt(1,6)
var misPaisesVisitados = new Set(); // THE ERROR OCCURS HERE
while(misPaisesVisitados.size != numeroDePaisesVisitados){
misPaisesVisitados.add(
paises[getRandomInt(0,paises.length-1)]
)
}
var miArregloDePaisesVisitados = Array.from(misPaisesVisitados)
print(db.usuarios.update(
{indice:i+1},
{$set: {paisesVisitados: miArregloDePaisesVisitados}}
))
}
错误信息是:
ReferenceError: Set is not defined
ECMAScript.
您只能使用已定义的内置函数,Set()
不是其中之一。您只需要一个普通对象并像这样设置它的键:
var misPaisesVisitados = {};
while(misPaisesVisitados.size != numeroDePaisesVisitados){
misPaisesVisitados[paises[getRandomInt(0,paises.length-1)]] = 1;
}
var miArregloDePaisesVisitados = Object.keys(misPaisesVisitados);
对象将只有唯一键(或 "set" ),然后您从对象中提取那些唯一键名称。
据我所知,mongodb 控制台有一个集成的 javascript 解释器,所以我的问题是为什么这段代码在有效 javascript 时不起作用:
//db = connect("localhost:27017/tecnicas")
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
diaFavorito = ["lunes", "martes", "miercoles", "sabado"]
sexo = ["hombre", "mujer"];
heladoFavorito = ["vainilla", "chocolate", "fresa", "coco"]
for(i = 0; i < 20; i++){
print(db.usuarios.insert({
fday: diaFavorito[getRandomInt(0, diaFavorito.length-1)],
genero: sexo[getRandomInt(0, sexo.length-1)],
fice: heladoFavorito[getRandomInt(0, heladoFavorito.length-1)],
indice: i+1,
ingresos: getRandomInt(12000, 120000)
}))
}
// SECOND PART
paises = ["Mexico", "USA", "Portugal", "Nepal", "Argelia", "Chile"]
for(i = 0; i < 20; i++){
numeroDePaisesVisitados = getRandomInt(1,6)
var misPaisesVisitados = new Set(); // THE ERROR OCCURS HERE
while(misPaisesVisitados.size != numeroDePaisesVisitados){
misPaisesVisitados.add(
paises[getRandomInt(0,paises.length-1)]
)
}
var miArregloDePaisesVisitados = Array.from(misPaisesVisitados)
print(db.usuarios.update(
{indice:i+1},
{$set: {paisesVisitados: miArregloDePaisesVisitados}}
))
}
错误信息是:
ReferenceError: Set is not defined
ECMAScript.
您只能使用已定义的内置函数,Set()
不是其中之一。您只需要一个普通对象并像这样设置它的键:
var misPaisesVisitados = {};
while(misPaisesVisitados.size != numeroDePaisesVisitados){
misPaisesVisitados[paises[getRandomInt(0,paises.length-1)]] = 1;
}
var miArregloDePaisesVisitados = Object.keys(misPaisesVisitados);
对象将只有唯一键(或 "set" ),然后您从对象中提取那些唯一键名称。