在我正在处理的集合中,文档如下所示:
{
name: 'Myname',
other: 'other',
stuff: [
['something', 12, 4, 'somethingelse'],
['morestuff', 2, 4, 8],
['finally', 12, 'again', 58],
]
}
我写了这个Mongoose模式来访问它:
var MyDocSchema = new Schema({
name: String,
other: String,
stuff: [],
});
当我查询文档时,一切正常,html" target="_blank">控制台中显示的输出正确。但是当我尝试执行console.log(myDoc.stuff)时,得到了以下信息:
['something', 12, 4, 'somethingelse', 'morestuff', 2, 4, 8, 'finally', 12, 'again', 58]
代替
[
['something', 12, 4, 'somethingelse'],
['morestuff', 2, 4, 8],
['finally', 12, 'again', 58],
]
我究竟做错了什么?谢谢您的帮助!!
http://mongoosejs.com/docs/schematypes.html
:向下滚动至Array部分:
注意:指定一个空数组等效于
[Mixed]
。以下所有创建的数组Mixed
。
“ Array”部分上方的“ Mixed”部分中包含有关此内容的详细信息。
定义嵌入式文档的架构:
var Stuff = new Schema({
name: String,
value1: Number,
...
});
使用它而不是一个空数组[]
:
var MyDocSchema = new Schema({
name: String,
other: String,
stuff: [Stuff],
});
问题内容: 假设以下3个模型: 当我查询汽车时,我可以填充零件: 猫鼬是否有办法在所有汽车的嵌套零件对象中填充otherIds。 我可能可以遍历每辆车并尝试填充: 问题是我必须使用一个像async这样的库来对每个对象进行填充调用,然后等到所有操作完成后再返回。 可以在不循环所有汽车的情况下做? 问题答案: 更新: 请参阅以获取在Mongoose 4中添加的更紧凑的版本。摘要如下: 猫鼬3及以下:
问题内容: 如何在示例文档中填充“组件”: 这是我的JS,可从Mongoose获取文档: 问题答案: 猫鼬4.5支持此 您可以加入不止一个深层次
如何在示例文档中填充“组件”: 这是我的JS,我在这里通过Mongoose获取文档:
问题内容: 我在这里看到了很多关于这个问题的答案,但是我还是不明白(也许是因为他们使用了更多“复杂”的例子)……所以我试图做的是为“客户”建立一个模式将具有两个具有嵌套“子字段”的字段,其他字段可能重复。这是我的意思: 电话 和 电子邮件 可能是一个数组。和地址将不会重复,但是您会看到一些子字段。 我该如何工作? 问题答案:
问题内容: 我对在我的主模式中使用子文档和更深层的优缺点感到好奇: 要么 我目前在各处使用子文档,但主要是想知道性能或查询我可能遇到的问题。 问题答案: 根据文档,它是完全一样的。但是,使用Schema也会添加一个字段(只要您没有禁用该字段),并且大概会使用更多资源来跟踪子文档。 备用声明语法 v3中的新增功能 如果不需要访问子文档架构实例,则还可以通过简单地传递对象文字来声明子文档[…]
我有一个像这样的物体。 我的目标是引用数组,并使用。我根据这个答案和另一个答案编写了这个代码。 我将我的发送到以更新彼得的银牌。请求机构是: 问题是,当我使用将竞争对手设置为时,我不知道中有什么。我想使用整个来更新数组中的对象,但是当我这样做的时候,该对象被覆盖,所以彼得的银章变成了: 如何更新数组中的对象,当我知道对象的与所有字段从没有删除字段,我想保持? 我认为数组是空的,因为该对象已重新初始