私信  •  关注

Akrion

Akrion 最近创建的主题
Akrion 最近回复了
4 年前
回复了 Akrion 创建的主题 » MongoDB查询以查找可能具有查询字符串变体的文档

如果你的变化就是这三种可能性,那么 艾玛 正是你所需要的。如果正则表达式失控,而最终导致 $text 搜索/索引和正则表达式。

例如:

db.getCollection('COLNAME').find({
  $or: [
    {
      $text: {$search: 'abc'}  // By default it is case insensitive
    },
    {
      product: {"$regex": "YOUR_REGEX_HERE"}
    }
  ]
})

这也可以执行,因为您将在 product 以及常规索引。这也会处理像 XXX-ABC 以及其他你可能不知道的变化。所以有些事情要考虑。

如果你调查一下 documentation 在方法中,您将看到传递的参数的顺序不正确。

findByIdAndUpdate(id, update, options, callback)

我会用 update 取而代之的是 id portal.events.eventId": { $ne: req.body.eventId } 初始过滤器的一部分,后跟 $addToSet: { "portal.events": req.body }

这些行中的一些:

UserModel.update(
  { 
     "_id": mongoose.Types.ObjectId(userId), 
     "portal.events.eventId": { $ne: req.body.eventId }
  },
  { $addToSet: { "portal.events": req.body } },
  { new: true }
);
5 年前
回复了 Akrion 创建的主题 » MongoDB数据已更新,但Axios正在获取旧数据

很可能是因为 axios 缓存。查看Axios设置中的内容,以及

'Cache-Control': 'no-cache' 

被设置。通常通过:

var config = {headers: {'Content-Type': 'application/json','Cache-Control' : 'no-cache'}};

axios.get('/get', config)  // <-- config

如果这不起作用,您可以总是在请求后附加一个时间戳,以确保它总是发出请求。

5 年前
回复了 Akrion 创建的主题 » mongodb$match在聚合查询中不能与$group一起使用

改变你 $match 章节到:

"$match": {
  "createdate": {
    "$gte": moment().startOf('year').toDate(),
    "$lt": moment().endOf('year').toDate(),
  }
}

看看这是否有帮助。我不认为 moment 将用作有效的日期参数