这是我的schema:
const wlb_schema = new mongoose.Schema({
wlbId: Number,
wlbName: String,
color: String,
coordinates: Object,
boardId: []
})
字符串
我想使用这个模式添加一个文档,其中坐标将是一个空对象。我试着这样做:
const wlb = new WLB({
wlbId: req.body.wlbId,
wlbName: req.body.wlbName,
color: req.body.color,
coordinates: {},
boardId: req.body.boardId
})
wlb.save()
型
它根本没有创建坐标键。所以我问AI,它告诉我忽略坐标:
const wlb = new WLB({
wlbId: req.body.wlbId,
wlbName: req.body.wlbName,
color: req.body.color,
boardId: req.body.boardId
})
wlb.save()
型
它也根本没有创建坐标键。
我现在使用一个解决方案:
const wlb = new WLB({
wlbId: req.body.wlbId,
wlbName: req.body.wlbName,
color: req.body.color,
coordinates: {
something: "i needed to insert this here"
},
boardId: req.body.boardId
})
wlb.save()
型
有没有一种方法可以将坐标创建为空对象?或者我需要使用这种愚蠢的解决方法?
2条答案
按热度按时间nhhxz33t1#
默认情况下,Mongo不会保存空对象。这样做是为了保存存储空间。您可以使用
minimize
覆盖此行为。字符串
sbtkgmzw2#
正如@Tushar Shahi已经说过的,
{ minimize: false }
将允许你保存空对象。但是,如果你在
coordinates
属性中添加了一个default
,你可以在第一次创建文档时忽略这个属性,然后插入空的对象。这对阅读你的模式的人来说更语义化,即你打算通过编译器保存一个空的对象,这不是一个编码错误。它看起来是这样的:字符串
当你创造的时候,
型