我是一个使用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)
如何链接多个查询?
我正在研究一个反应项目(网络),它在页面上有许多静态图像。问题是图像很少更改,但是每次对图像的请求都会检查图像是否已更改并获得 304 状态代码。每个请求大约需要不到 1 秒,但是由于图像很多,这很烦人,也不利于用户体验。如何缓存图像以防止不发送对特定图像的请求?如果有多种解决方案,哪个是好的解决方案?
我正在使用猫鼬,并且在填充后进行聚合时遇到问题。下面是一个例子。
猫鼬模型模式有两种,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
我正在处理我的项目@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) 我正在开发一个渐进式网络应用程序(PWA)项目,该项目在服务工作者中制作推送通知。使用 FCM(Firebase Cloud Messaging)发送推送通知是成功的,但我想知道我如何知道我的网络应用程序是否有权从用户的浏览器发送推送通知。如果可能,我想显示用户按钮以请求推送通知的权限。是否可以?
firebase service-worker progressive-web-apps firebase-cloud-messaging
mongodb ×2
mongoose ×2
node.js ×2
reactjs ×2
express ×1
firebase ×1
http-headers ×1
react-redux ×1
redux ×1