问题标签 [mongoose-schema]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 猫鼬中的虚拟对象,“this”是空对象
好的,我是猫鼬的新手,并试图了解如何使用虚拟属性。这是我一直在测试的示例代码。
所以我希望日志类似于:
但输出是
当我在虚拟吸气剂的开头记录“this”时,它会打印 {}。我究竟做错了什么?
node.js - 如何使用猫鼬和nodejs删除模型中关于id的项目
这是我的架构
如何删除 purchaseOrderSchema 中相对于 id 的项目。项目使用 itemSchema 存储。
mongodb - Wildcard Text Index and inherited schemas
I have 1 root schema and 4 inherited schemas using a discriminatorKey http://mongoosejs.com/docs/discriminators.html
In this scenario I'm not clear if I can use a wild card text index. The purpose is to index all the string fields of each inherited schema independently. https://docs.mongodb.org/manual/core/index-text/
EDIT
Adding this myRootSchema.index({ "_type": 1, "$**": "text" });
on my mongoose root schema I get this error when I try to query. Should I repeat this on the inherited schemas too?
the query:
node.js - Mongoose 复合索引唯一 + 稀疏
我想创建一个索引,以确保我在+serialNr
的组合中没有重复。但有些项目没有. 这些我不想检查/索引。 manufacturer
art
serialNr
代码
mySchema.index({ serialNr: 1, art: 1 , manufacturer: 1, deleted: 1}, { unique: true, sparse: true)
我也尝试过
partialFilterExpression: { serialNr: {$ne:null} }
在索引选项中添加部分过滤器:。
问题
我怎样才能索引它插入:
[{art: 'a', manufacturer:'a', deleted:null}, {art: 'a', manufacturer:'a', deleted:null}]
通过
和
[{serialNr: '123', art: 'a', manufacturer:'a', deleted:null}, {serialNr: '123', art: 'a', manufacturer:'a', deleted:null}]
失败
我不想保存:
[{serialNr: null, art: 'a', manufacturer:'a', deleted:null}, {serialNr: null, art: 'a', manufacturer:'a', deleted:null}]
mongo 文档指出,如果复合索引中缺少字段,则不应对其进行索引:
稀疏索引仅根据索引字段的存在来选择要索引的文档,或者对于复合索引,索引字段的存在。 https://docs.mongodb.org/manual/core/index-partial/
编辑:
新指数
implantSchema.index({ serialNr: 1, art: 1 , manufacturer: 1, deleted: 1}, { unique: true, partialFilterExpression: { serialNr: {$exists:true} }})
在对索引进行更改之前,我将我的索引collection
放入我的开发数据库中,以确保不存在旧索引。这是返回的新索引db.items.getIndexes()
数据
- 我有一个预保存挂钩,我在其中检查 的值
serialNr
,该值以前不存在,然后dup error
返回。 - 查询数据库时,不
doc
存在具有null
,""
作为 的值serialNr
。 - 查询
db.items.find({ serialNr: {$exists:true} })
不匹配任何项目。
错误
附加信息
也许错误与: https ://github.com/Automattic/mongoose/issues/2457有关
mongoose - 孩子 id,在 parentSchema 范围内唯一,还是在所有孩子中?
我不知道如何在文档中找到我的答案,这就是我打扰你问的原因。
我有两个使用猫鼬的模式:
我也有Child
一个Parent
模型。
现在在我看到的最佳实践中,如果我们想要一个特殊父母的一个特殊孩子,我们使用这个网址:
现在每个child
都有自己id
的猫鼬生产的。但它是另一个父母的孩子所独有的吗?
为了得到孩子,我应该这样做:
我的意思childSchema
是嵌入的,它不是参考所以:
- 我有一个儿童模型。
- 我的子模型不是独立的,它取决于父模型。但它的 id 也依赖吗?当然,通过用
findById
此代码替换部分:
我的问题真的是,为了得到孩子,我可以用这个代码代替:
这给出了相同的结果,对吗?还是我弄错了,孩子的 id 仅在其父范围内是唯一的?
任何帮助是极大的赞赏。
mongoose - 具有多个子路径的猫鼬填充路径
想象一下我有以下模型:
模型 D 和 E 没有任何其他对象引用,因此为方便起见不再列出。
用所有引用填充模型“A”的最佳实践是什么?目前我按如下方式解决此任务(这是一个实例方法,因为我经常需要它):
这是我发现填充所有引用的唯一方法,因为在不同模型中使用多个路径填充多个路径非常困难。我已经尝试过类似下面的解决方案,但可以想象,它只会覆盖以前的人口:
node.js - 如何在猫鼬中仅获取“唯一”子子文档,删除重复项?
我是 mongodb 和 mongoose 的新手,我在 mongoose 文档中搜索的越多,我就越迷路。
说我有一个user
它的name
字段有值John, John 有两个role
s:
- 超级用户
- 行政
这个 s 中的每一个role
都有一些permissions
:
- 超级用户
- 添加问题
- 编辑问题
- 删除问题
- 行政
- 添加问题
- 查看答案
如您所见,每个都有重复项role
,我怎样才能在没有重复项的数组中获取用户JohnaddQuestion
的权限(此示例中的重复项是),如下所示:
['addQuestion', 'editQuestion', 'removeQuestion', 'viewAnswer']
这是我的架构:
如您所见,我没有permissions
数组中的权限名称,我有引用(ObjectId
s)。
我只有一个userId
来自网址。所以:
我应该使用distinct
吗?我可以distinct
不populate
先使用 ing 吗?还是必须的?或者distinct
我应该使用user
传入回调的项目而不是????
使用user
参数(使用find
方法)来获取所有角色,并为所有角色获取权限,然后从permissionsArr
数组中删除重复项?
更新:这是我使用猫鼬制作的休息 api 的结果,获取用户角色(GET http://localhost/api/users/:userId/roles):
结果:
现在我需要的是GET
http://localhost/api/users/:userId/permissions并通过它获取用户拥有的,但重复项已被删除。(permissions
不应该直接。)roles
user
permissions
感谢您抽出宝贵的时间以及您能够提供的任何帮助。
mongodb - 在 Mongoose 的字典中验证子文档
我有一个, 有一个由
对象组成userTasteSchema
的字典字段。当我保存或更新 a时,我想验证字典的元素是有效对象。可能吗?谢谢你favorites
favoriteSchema
userTaste
favorite
node.js - 如何让猫鼬不创建不必要的_id?
我会得到类似的东西
我怎样才能让猫鼬不创建_id
内部帖子?
node.js - 在默认模式下使用自定义函数?
我有这样的架构:
我不能随机,但只能null
用于 uniq 字段
是否可以默认使用自定义功能?