我想通过猫鼬进行API调用,以将一批选定的Players
(下面的模式)卡
子文档的日期字段更新为当前日期。
Player模式:
const playerSchema = new Schema({
name: String,
cards: [{
date: { type: Date, required: true },
note: String
}],
});
我创建了一个复选框,用户可以在其中选择多个玩家
(以及他们的卡片
数组中的特定'卡片'子文档),并将所有选定的玩家
的特定卡片的日期更改为相同的日期...作为反应,我将相应的ObjectIds在主体中批处理在一起,并将选定的玩家/卡片组合发送到一个对象数组中,如下所示(其中数字表示相同的分组玩家
我正在发送到服务器的阵列(可通过req.body.cards访问):
[ {cardId: card1._id, playerId: player1._id},
{cardId: card2._id, playerId: player2._id},
{cardId: card3._id, playerId: player3._id} ]
在我的Node/Express serverput
route中,我将如何更新所有玩家及其特定卡,并异步为他们提供所有相同的日期(date.now()?换句话说,我如何正确地迭代所有不同的playerid及其各自的cardId(最好没有任何外部库)?
以下是我如何在我的常规放牌路线中为单个玩家更新一张卡片,以编辑卡片
子文档:
Player.findById(playerId)
.then(player => {
const card = player.cards.id(cardId);
card.date = Date.now();
player.save(
(err, updatedCard) =>
err
? console.log("Error in update card: " + err)
: res.send(updatedCard)
);
})
.catch(err => res.status(404).json({ success: false }));
我认为这应该行得通。
单人播放器可以通过以下查询进行更新:-
Player.findOneAndUpdate(
{ _id: playerId, "cards._id": cardId },
{ $set: { "cards.$.date": Date.now() } }
);
可以使用此查询更新多个播放器
Player.update(
{ $or: [{ _id: player1Id, "cards._id": card1Id }, { _id: player2Id, "cards._id": card2Id }, { _id: player3Id, "cards._id": card3Id }] },
{ $set: { "cards.$.date": Date.now() } },
{ multi: true }
);
位置操作符$将负责用给定的卡ID更新数组中正确的卡。
我想使用mongoose从多个文档更新多个子文档。 我目前的代码是: 模式的一部分是: 但是这段代码只更新id arr中的最后一个元素。
我试图更新一个子文档(有效),然后更新除上一个子文档之外的多个子文档。基本上,每次
我有一份这样的文件: 我想通过将其与数量字段(2*800)相乘来更新价格字段,其中的结果将更新/分配给价格。(对于本例,价格更新为1600)。 更新后的文档: 我的选择查询如下: 我怎样才能做到这一点?
问题内容: 也许是时候了,也许是我淹没在稀疏的文档中,无法将自己的头围在Mongoose中的更新概念上:) 这是交易: 我有一个联系模式和模型(缩短的属性): 我从客户端收到一个包含我需要的字段的请求,并因此使用我的模型: 现在我们解决了这个问题: 如果我打电话,如果使用相同电话号码的联系人已经存在(如预期-唯一),我将收到一条错误消息 我无法致电联系,因为该方法在文档中不存在 如果我对模型调用u
我有一个mongodb集合的mongoose模式,我将其定义如下: 在数据库集合中,我当前有一个文档,它包含除以外的所有属性的值,用于测试目的。我有一个服务器endpoint,当被调用时,它应该发出一个PUT请求来更新文档并向sketches数组中添加一个对象: 在这个web服务中,我基本上试图通过用户名选择用户文档,用户名作为参数传递给url字符串,如下所示: 由于某种原因,当我尝试使用具有以下
本文向大家介绍MongoDB中一次查询更新多个文档,包括了MongoDB中一次查询更新多个文档的使用技巧和注意事项,需要的朋友参考一下 要通过单个查询更新许多文档,请在MongoDB中使用 bulkWrite()。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是使用MongoDB中的一个查询来更新许多文档的查询- 在find()方法的帮助