Javascript 如何将对象键和值推送到数组
我需要将键值对推送到新数组,并应该构建mongodb$match查询Javascript 如何将对象键和值推送到数组,javascript,mongodb,object,Javascript,Mongodb,Object,我需要将键值对推送到新数组,并应该构建mongodb$match查询 const queryFormat = (payload) => { delete payload.userEventId var query = {} var res = [] for(key in payload) { if(typeof(payload[key])) { res.push({ [key]: payload[key] })
const queryFormat = (payload) => {
delete payload.userEventId
var query = {}
var res = []
for(key in payload) {
if(typeof(payload[key])) {
res.push({ [key]: payload[key] })
}
else {
res.push({"$in" :{ [key]: payload[key] }})
}
}
console.log(res[3])
query['$match'] = {"$and" :res}
console.log(query)
}
const payload = {
id :1,
name : 'Alfred',
location : 'moon',
values : [{name: 'u',age:9}]
}
queryFormat(payload)
预期产出
{"$match":{"$and":[{id:1},{name:"Alfred"},{location:"moon"},{"values":{"$in":[{name:"u"},{age: 9}]} }]}}
{"$match":{"$and":[{id:1},{name:"Alfred"},{location:"moon"},{"values":{"$in":[{name:"u",age: 9}]} }]}}
我得到的输出
{"$match":{"$and":[{id:1},{name:"Alfred"},{location:"moon"},{"values":{"$in":[{name:"u"},{age: 9}]} }]}}
{"$match":{"$and":[{id:1},{name:"Alfred"},{location:"moon"},{"values":{"$in":[{name:"u",age: 9}]} }]}}
如何处理
谢谢 当前,您将密钥指定为
“key”
使用[]
指定需要键的值作为键
const queryFormat=(有效负载)=>{
删除有效负载.userEventId
变量查询={}
var res=[]
用于(输入有效负载){
res.push({[key]:有效负载[key]})
}
查询['$match']={“$and”:res}
console.log(查询)
}
常数有效载荷={
id:1,
姓名:“阿尔弗雷德”,
地点:“月亮”
}
查询格式(有效负载)