相关疑难解决方法(0)

对象的映射函数(而不是数组)

我有一个对象:

myObject = { 'a': 1, 'b': 2, 'c': 3 }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个本机方法,类似于Array.prototype.map将使用如下:

newObject = myObject.map(function (value, label) {
    return value * value;
});

// newObject is now { 'a': 1, 'b': 4, 'c': 9 }
Run Code Online (Sandbox Code Playgroud)

JavaScript是否具有map对象的这种功能?(我想将它用于Node.JS,所以我不关心跨浏览器问题.)

javascript functional-programming node.js map-function

903
推荐指数
16
解决办法
100万
查看次数

在对象数组上使用Mongoose/MongoDB $ addToSet功能

说我在Mongoose架构上有这个数组属性('articles'):

articles: [ 

 {
  kind: 'bear',
  hashtag: 'foo'    
 },

 {
  kind: 'llama',
  hashtag: 'baz',
  },

 {
  kind: 'sheep',
  hashtag: 'bar',
  }

]
Run Code Online (Sandbox Code Playgroud)

我该怎么用

$ addToSet https://docs.mongodb.org/manual/reference/operator/update/addToSet/

通过检查hashtag的值来添加到此数组以查看它是否唯一?

例如,如果我想将以下对象添加到上面的数组中,我希望Mongo将其"拒绝"为重复:

{
  kind: 'tortoise',
  hashtag: 'foo'

}
Run Code Online (Sandbox Code Playgroud)

因为hashtag = foo已被采用.

问题是我只知道如何使用$addToSet简单的整数数组...

例如,如果文章看起来像这样:

articles: [ 1 , 5 , 4, 2]
Run Code Online (Sandbox Code Playgroud)

我会像这样使用$ addToSet:

var data = {

    "$addToSet": {
     "articles": 9
   }

}

model.update(data);
Run Code Online (Sandbox Code Playgroud)

但是我怎么能用一个对象数组来完成同样的事情,其中​​唯一字段是一个字符串,在这种情况下是'hashtag'?文档没有说清楚,似乎我到处都搜索过..

谢谢

mongoose mongodb node.js mongodb-query

8
推荐指数
1
解决办法
1万
查看次数

Node.js - Mongoose - 使用req.body中的所有值更新嵌套数组

我有一个看起来像这样的对象.

{
  _id: '577fe7a842c9b447',
  name: 'Jacob\'s Bronze Badges',
  competitors: [
    {
      _id: '577fe7a842c9bd6d',
      name: 'Peter\'s Silver Badges',
      sites: [
        {
          _id: '577fe7a842c9bd6d',
          name: 'Facebook',
          url: 'fb.com/peter'
        },
        {
          _id: '577fe7a842c9bd6d'
          name: 'Google',
          url: 'google.com/peter'
        }
      ]
    },
    {
      _id: '599fe7a842c9bd6d',
      name: 'Paul\'s Gold Badges',
      sites: [
        {
          '_id': '577fe7a842c9bd6d',
          name: 'Facebook',
          url: 'fb.com/paul'
        },
        {
          _id: '577fe7a842c9bd6d',
          name: 'Google',
          url: 'google.com/paul'
        }
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的目标是引用competitors数组并使用所有值更新内部的项目req.body.我基于这个代码关闭的这个答案,以及该另一个.

Location.update(
  { 'competitors._id': req.params.competitorId, }, …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js express

3
推荐指数
1
解决办法
6944
查看次数