如何删除_id属性?

时间:2019-03-23 15:16:30

标签: javascript mongodb

我的问题是,当我显示具有所有属性的联系人但由于某种原因而不起作用时,我试图删除._id。

app.get("/contacts", (req,res)=>{
var id = res.params._id;
contacts.find({}).toArray((err,contactsArray)=>{

    if(err){
         console.log("Error: "+err);
    }else{
        var arraySinId = contactsArray.map((t)=>{
           t.delete(id);
        });
        res.send(arraySinId); 
    }
});

1 个答案:

答案 0 :(得分:2)

您可以将数组重新映射到具有所需属性的新数组。在下面查看代码。

const contactsArray = [
  { id: 1, foo: 'foo'},
  { id: 2, foo: 'bar'},
  { id: 3, foo: 'baz'},
  { id: 4, foo: 'foobar'}
]

const arraySinId = contactsArray.map((t) => ({
  foo: t.foo,
}));

console.log(arraySinId)

更新

如果必须删除的道具是动态的,则可以使用实用程序功能omit,该功能可以在Ramda或Lodash等库中找到,也可以自行使用。

const dynamicPropToRemove = 'id'

const contactsArray = [
  { id: 1, foo: 'foo'},
  { id: 2, foo: 'bar'},
  { id: 3, foo: 'baz'},
  { id: 4, foo: 'foobar'}
]

const arraySinId = contactsArray.map(R.omit([ dynamicPropToRemove ]));

console.log(arraySinId)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>