问题标签 [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.

0 投票
1 回答
2472 浏览

node.js - 猫鼬中的虚拟对象,“this”是空对象

好的,我是猫鼬的新手,并试图了解如何使用虚拟属性。这是我一直在测试的示例代码。

所以我希望日志类似于:

但输出是

当我在虚拟吸气剂的开头记录“this”时,它会打印 {}。我究竟做错了什么?

0 投票
1 回答
46 浏览

node.js - 如何使用猫鼬和nodejs删除模型中关于id的项目

这是我的架构

如何删除 purchaseOrderSchema 中相对于 id 的项目。项目使用 itemSchema 存储。

0 投票
1 回答
480 浏览

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:

0 投票
1 回答
2515 浏览

node.js - Mongoose 复合索引唯一 + 稀疏

我想创建一个索引,以确保我在+serialNr的组合中没有重复。但有些项目没有. 这些我不想检查/索引。 manufacturerartserialNr

代码

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有关

0 投票
1 回答
322 浏览

mongoose - 孩子 id,在 parentSchema 范围内唯一,还是在所有孩子中?

我不知道如何在文档中找到我的答案,这就是我打扰你问的原因。
我有两个使用猫鼬的模式:

我也有Child一个Parent模型。
现在在我看到的最佳实践中,如果我们想要一个特殊父母的一个特殊孩子,我们使用这个网址:

现在每个child都有自己id的猫鼬生产的。但它是另一个父母的孩子所独有的吗?

为了得到孩子,我应该这样做:

我的意思childSchema嵌入的,它不是参考所以:

  • 我有一个儿童模型。
  • 我的子模型不是独立的,它取决于父模型。但它的 id 也依赖吗?当然,通过用findById此代码替换部分:

我的问题真的是,为了得到孩子,我可以用这个代码代替:

这给出了相同的结果,对吗?还是我弄错了,孩子的 id 仅在其父范围内是唯一的?

任何帮助是极大的赞赏。

0 投票
1 回答
788 浏览

mongoose - 具有多个子路径的猫鼬填充路径

想象一下我有以下模型:

模型 D 和 E 没有任何其他对象引用,因此为方便起见不再列出。

用所有引用填充模型“A”的最佳实践是什么?目前我按如下方式解决此任务(这是一个实例方法,因为我经常需要它):

这是我发现填充所有引用的唯一方法,因为在不同模型中使用多个路径填充多个路径非常困难。我已经尝试过类似下面的解决方案,但可以想象,它只会覆盖以前的人口:

0 投票
2 回答
1643 浏览

node.js - 如何在猫鼬中仅获取“唯一”子子文档,删除重复项?

我是 mongodb 和 mongoose 的新手,我在 mongoose 文档中搜索的越多,我就越迷路。
说我有一个user它的name字段有值John, John 有两个roles:

  • 超级用户
  • 行政

这个 s 中的每一个role都有一些permissions

  • 超级用户
    • 添加问题
    • 编辑问题
    • 删除问题
  • 行政
    • 添加问题
    • 查看答案

如您所见,每个都有重复项role,我怎样才能在没有重复项的数组中获取用户JohnaddQuestion的权限(此示例中的重复项是),如下所示:

['addQuestion', 'editQuestion', 'removeQuestion', 'viewAnswer']

这是我的架构:

如您所见,我没有permissions数组中的权限名称,我有引用(ObjectIds)。

我只有一个userId来自网址。所以:

我应该使用distinct吗?我可以distinctpopulate先使用 ing 吗?还是必须的?或者distinct我应该使用user传入回调的项目而不是????使用user参数(使用find方法)来获取所有角色,并为所有角色获取权限,然后从permissionsArr数组中删除重复项?

更新:这是我使用猫鼬制作的休息 api 的结果,获取用户角色(GET http://localhost/api/users/:userId/roles):

结果:

现在我需要的是GET http://localhost/api/users/:userId/permissions并通过它获取用户拥有的,但重复项已被删除。(permissions不应该直接。)rolesuserpermissions

感谢您抽出宝贵的时间以及您能够提供的任何帮助。

0 投票
1 回答
267 浏览

mongodb - 在 Mongoose 的字典中验证子文档

我有一个, 有一个由 对象组成userTasteSchema的字典字段。当我保存或更新 a时,我想验证字典的元素是有效对象。可能吗?谢谢你favoritesfavoriteSchemauserTastefavorite

0 投票
0 回答
47 浏览

node.js - 如何让猫鼬不创建不必要的_id?

我会得到类似的东西

我怎样才能让猫鼬不创建_id内部帖子?

0 投票
1 回答
317 浏览

node.js - 在默认模式下使用自定义函数?

我有这样的架构:

我不能随机,但只能null用于 uniq 字段

是否可以默认使用自定义功能?