问题标签 [mongoose-plugins]
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 - mongoose 和 mongoose-schema-extend 中的子文档继承
我尝试使用 mongoose-schema-extend 实现 mongoDB 子文档的继承,然后使用 mongoose 本身。基本要求是在继承类中定义附加属性并将它们放在 DB 上——这在两种方法中都可以正常工作。第二个要求是能够区分类型——使用 discriminatorType 和 instanceOf。discriminatorType 没有使用 mongoose-schema-extend 保存在 DB 中,仅直接使用 mongoose discriminator。instanceOf 在这两种情况下都不起作用(在 parentDocument.find 之后)- 口袋似乎只是对象。
猫鼬模式扩展的代码:
带有 util.extend 的猫鼬代码:
**检查instanceOf的代码:**
mongoose-schema-extend 鉴别器对子文档不能正常工作吗?例如,这不应该返回 true 吗?
提前致谢。
javascript - MongooseJS - 执行计数后返回查询,然后进行查找
我想获取集合中对象的数量,然后使用该数字执行查找。目前的代码如下所示:
testModel
猫鼬模型在哪里。这很好用!但是,如果以上为空,我还希望能够返回整个查询(包括count
)预执行callback
,以便用户可以将更多选项附加到管道(例如填充)。我怎样才能做到这一点?
node.js - 使用 Mongoose 填充对父级的引用并在使用 passportjs 进行身份验证后显示完整的父级
我有以下架构user
和sp
。sp
是服务提供者的缩写。服务提供者是一个用户,它对用户有一个引用。我正在尝试使用 NodeJS 的 PassportJS 模块注册和唱歌。我已经能够注册一个sp
并且我可以看到数据持久化在 MongoDB 集合中 users
和sps
集合中,但是我无法在个人资料页面上显示 sp 的完整数据。我只能显示它的用户数据。例如,我在身份验证后在个人资料页面中看不到sp
' 的spname
数据。
以下是部分代码:
用户架构:
sp的架构:
用于登录的 PassportJS 代码:
显示配置文件:
配置文件.ejs
有人可以帮我做什么来显示整个sp
对象及其所有数据吗?
node.js - 在 Mongoose 插件中添加字段会给出“TypeError: Invalid value for schema path `CreatedBy.type`”
我正在尝试制作一个 CreatedBy Mongoose 插件,但是当尝试使用ObjectId
它给我的字段类型时("account"
已经是另一个定义的集合):
&这里是插件代码:
那么我如何修改该ref
值以使其工作?
node.js - 在 Mongoose 的插件中调用静态方法到模式
我写了一个插件:
这是我的架构:
如果我在插件之外编写静态方法,它就可以工作。这是来自猫鼬的限制吗?
android - 在到达列表末尾时加载更多记录(列表视图)
我有一个要求,当用户到达屏幕滚动列表的末尾时,我的列表视图应该通过从服务器读取来显示接下来的 10 个值。
我正在使用“凌空”从服务器异步获取数据。我的服务器代码建立在其中的 Node.js + mongoose 和 MongoDB 之上。我在npm-mongoose-paginate上阅读了有关 Mongoose 分页的信息。有人可以用一个清晰的例子来帮助我/解释我使用它。谢谢
javascript - this.find(...) 永远不会在静态方法中到达回调
我正在开发一个将基于友谊的关系添加到模式的模块。
我基本上是在尝试做这个人想做的事情(AFAIK,应该可以工作——这令人沮丧)
为什么永远不会达到它的回调find(...)
?FriendshipSchema.statics.getFriends
编辑- 请允许我解释预期的执行流程......
里面accounts.js
:
- 需要 'friends-of-friends' 模块(加载
friends-of-friends/index.js
)- 需要
friends-of-friends/friendship.js
它导出一个创建FriendshipSchema
、添加静态方法、返回Friendship
模型的函数。 - 需要
friends-of-friends/plugin.js
它导出 mongoose 插件,该插件将静态和实例方法添加到`AccountSchema.
- 需要
- 使用
FriendsOfFriends.plugin
(参见friends-of-friends/index.js
)从friends-of-friends/plugin.js
- 定义
AccountSchema.statics.search
哪些调用this.getFriends
.
由于this
在编译后引用Account
模型,并且由于添加了插件schema.statics.getFriends
,因此调用this.getFriends
insideAccountSchema.statics.search
将按schema.statics.getFriends
定义调用 infriends-of-friends/plugin.js
,它将调用Friendship.getFriends
(由FriendshipSchema.statics.getFriends
in定义friends-of-friends/friendship.js
)调用this.find(...)
应该转换为 Friendship.find(...)` - 检索帐户文档后,我
account.search('foo', function (...) {...});
调用了FriendshipSchema.statics.getFriends
find
我没有收到任何错误,所以我知道这是一个逻辑问题,但我不确定为什么事情会挂在它们所在的位置......
编辑- 请参阅下面的答案,我还需要编译模型才能调用find
它们。
account.js
朋友的朋友/index.js
朋友的朋友/friendship.js
朋友的朋友/plugin.js
node.js - mongoose 子文档数组的实例方法
我有一个像猫鼬这样的模式
我想将一个实例方法附加到friends
数组中,例如,一个myFunction
可以像这样调用的函数
猫鼬是否提供了这样做的方法?
PS:在这里,@wciu 询问是否可以在子文档本身上定义一个函数(这是可能的)。这里的问题是是否可以在数组上定义它。
mongoose - 如何在 Keystone LocalFile 字段中指定自定义开发/前缀
我想在我稍后传递给 List.add 的模式对象中的 keystone.List 构造函数中使用从 autokey 插件生成的相同值。
这更准确地说是我想要做的:
所以这当然行不通。我怎样才能在我的模式中重新使用自动键入的 slug 值?
顺便说一句,引用在“格式”函数中起作用,因为当调用该函数时,它可以通过实例化模型提取存储的值。
mongoose - 如何为猫鼬 ODM 编写自定义填充?
Mongoose 有一个填充函数来通过 id 取消引用对象。
我想创建一个函数来通过指定集合和 id 的字段中的数据自动遵守
例如., foo: {col:'user',id:'54c5c5c13a0b4090451f8715'}
似乎猫鼬允许用户创建插件。是否可以创建一个插件来实现这一点?