小编Ben*_*min的帖子

链接mongoose查询的最佳方式

我是一个使用node和mongoose的新手开发人员,并想知道用mongoose链接查询的最佳方法是什么.我在下面做,它不起作用.

User.findByIdAndUpdate(req.params._id, user, { upsert: true })
.exec((err, updatedUser) => {
  if (addedCollections) {
    return User.findByIdAndUpdate(req.params._id, { $push: { _collections: { $each: addedCollections } } }, { upsert: true }).exec();
  }
  return new Query;
})
.exec(() => {
  return User.findById(req.params._id).populate('_collections');
})
.exec((err, user) => {
  res.json({ user });
})
Run Code Online (Sandbox Code Playgroud)

如何链接多个查询?

mongoose mongodb node.js express

5
推荐指数
1
解决办法
5661
查看次数

如何在反应项目上缓存静态图像

我正在研究一个反应项目(网络),它在页面上有许多静态图像。问题是图像很少更改,但是每次对图像的请求都会检查图像是否已更改并获得 304 状态代码。每个请求大约需要不到 1 秒,但是由于图像很多,这很烦人,也不利于用户体验。如何缓存图像以防止不发送对特定图像的请求?如果有多种解决方案,哪个是好的解决方案?

browser-cache http-headers reactjs

5
推荐指数
0
解决办法
746
查看次数

用猫鼬填充后如何聚合

我正在使用猫鼬,并且在填充后进行聚合时遇到问题。下面是一个例子。

猫鼬模型模式有两种,mongoose 和 collection。

const monster = new Schema({
    name: { type: String },
    power: { type: Number },
    armor: { type: Number },
});

const collection = new Schema({
    _monster: { type: Schema.Types.ObjectId, ref: 'Monster' },
    addedPower: { type: Number },
    addedArmor: { type: Number },
});
Run Code Online (Sandbox Code Playgroud)

如您所见,字段 '_monster' 是模式 'collection' 到模式 'monster' 的外键。

我想使用如下所示的路径填充“怪物”和“集合”。

Collection.find().populate('_monster')
Run Code Online (Sandbox Code Playgroud)

我想像下面这样汇总这个结果。

AboveResult.aggregate([
    {
        '$project': {
            'new_field': { 
                '$add': [ 
                     '$addedPower', '$addedArmor', '$_monster.power', '$_monster.armor' 
                ]
            }
        }
    }
]);
Run Code Online (Sandbox Code Playgroud)

以上不起作用,但我认为它可以解释我想要什么。回答将不胜感激。

mongoose mongodb node.js mongodb-query aggregation-framework

4
推荐指数
1
解决办法
4183
查看次数

不可起草值的 case reducer 不得返回 undefined

我正在处理我的项目@reduxjs/toolkit并创建UserSlice如下。

import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { User } from "../../models";

export type UserState = User | null;

export const initialUserState: UserState = null;

const UserSlice = createSlice({
  name: "User",
  initialState: initialUserState,
  reducers: {
    receiveUser: (state: UserState, action: PayloadAction<UserState>) => {
      state = action.payload;
    },
    clearUser: (state: UserState, _action: PayloadAction<void>) => {
      state = null;
    },
    signIn: (
      _,
      _action: PayloadAction<{
        email: string;
        password: string;
      }>
    ) => {},
    signInWithToken: (_, _action: PayloadAction<void>) …
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux redux-toolkit

4
推荐指数
2
解决办法
3000
查看次数

如何知道 Service Worker 中是否激活了推送通知的权限?

我正在开发一个渐进式网络应用程序(PWA)项目,该项目在服务工作者中制作推送通知。使用 FCM(Firebase Cloud Messaging)发送推送通知是成功的,但我想知道我如何知道我的网络应用程序是否有权从用户的浏览器发送推送通知。如果可能,我想显示用户按钮以请求推送通知的权限。是否可以?

firebase service-worker progressive-web-apps firebase-cloud-messaging

2
推荐指数
1
解决办法
2006
查看次数