- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 mongoose 模型模式,我正在尝试为一些预先存在的 mongodb 文档构建它。现有的 mongo 文档具有对同一集合的自引用。我试图创建一个表示这种关系的模式,然后尝试使用 populate method .架构如下所示(为简洁起见删除了一些属性):
var fileSchema = new Schema({
_id: { type: String },
pcap: {
files: [{ type: Schema.Types.ObjectId, ref: 'Files' }]
}
});
var file = artifactConn.model('Files', fileSchema, 'info');
然后我使用上面的模型来查询然后像这样填充:
models.file.findById("91320684-9a1a-4f2a-a03f-63a7a208ec9b")
.populate('pcap.files') // have also tried just 'files' w/ the same result
.exec(function (err, file) {
if (!err) {
console.log(file);
} else {
console.log(err);
}
});
结果是这样的
{ _id: '91320684-9a1a-4f2a-a03f-63a7a208ec9b',
pcap:
{ files: [] }
}
如果我在 mongohub 中查看我的文档,它看起来像这样
{ "_id" : "91320684-9a1a-4f2a-a03f-63a7a208ec9b",
"pcap" : {
"files" : [
{ "_id" : "e4eed129-b4aa-46fc-8df2-3f3f92e6fe53" },
{ "_id" : "8c0ecb98-452e-475d-a521-feba5c3d1426" },
{ "_id" : "4b87c467-f396-4bcf-a7b0-8419e8441ec0" } ] } }
我调用 populate 是不是做错了什么?这是我设置架构的方式吗?这是数据存储的方式吗?
最佳答案
您的架构不正确。您拥有的架构将匹配这样的集合:
{ "_id" : "91320684-9a1a-4f2a-a03f-63a7a208ec9b",
"pcap" : {
"files" : [
{ ObjectId("e4eed129-b4aa-46fc-8df2-3f3f92e6fe53") },
{ ObjectId("8c0ecb98-452e-475d-a521-feba5c3d1426") },
{ ObjectId("4b87c467-f396-4bcf-a7b0-8419e8441ec0") } ] } }
架构应该是:
var fileSchema = new Schema({
_id: { type: String },
pcap: {
files: [{
_id: { type: String, ref: 'Files' }
}]
} });
这应该有效。
关于node.js - 是否可以在 mongoosejs 模式中填充自引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028942/
这是我的 mongoosejs 架构。我将 name unique 设置为 false,但这就是我得到的: MongoError: insertDocument::引起的::11000 E11000
在进行任何类型的验证之前,我需要清理 MongooseJS 中的字符串。如何访问模型的字段并更改(清理)该字段,然后才对该字段进行验证? 例如,这就是我的模型的样子: var Notification
我找到了多篇文章和指南,称赞使用 populate() 方法在 Mongoose 和 MongoDB 中进行连接的能力。 这让我很困惑。如果你想做连接,你不应该使用 SQL 数据库吗?加入 Mongo
目前我有以下方案模型: var userModel = mongoose.schema({ images: { public: [{url: {type: String}}]}
如何对不同的查询进行排序我试过这个 exports.categories = function(req, res) { Article.distinct({'categories' : tru
我看过this功能。 我可以看到它生成了一个slug,但我不太明白它是如何工作的。在 327 行,它返回来自 Model.findOne 函数的 promise ,但在该 Model.findOne
不知何故,在 mongoose 官方网站上很难找到信息。我想知道有没有教程或引用网站? 另外,一个特殊的问题是,如何在 mongoose 中运行 update() 。 :) 最佳答案 我在一个项目中使
我想知道是否有办法限制(子)文档中的元素数量。在我的应用程序中,可以使用 ajax 将元素添加到子文档,因此防止恶意用户添加大量可笑的条目很重要。 我能想到一种方法,就是查询父文档,检查子文档中的元素
假设我有一个文档,例如:var doc = Model.findOne({name:"name"}); 现在,如果文档通过数据库的另一个连接进行编辑,则 doc 不包含正确的信息。我确实需要它,所以我
我有如下 MongooseJS 模式: var UserSchema = new Schema({ name : String, app_key
我想我在使用 mongoosejs 时遇到了麻烦。我试图将一个对象数组保持在特定大小 2。调用此函数时,它会向数组添加一个项目,并在必要时将其缩小。但是,当我保存数组时,大小不会缩减为 2。按照代码和
目前我在引用对象中的文本索引时遇到问题这是代码 架构 var UserSchema = new mongoose.Schema({ username: String, fullname
我有一个用于 Lists 的 MongooseJS 架构,其中每个列表都包含一个 ListItems 数组。每个 ListItem 只是对 Item 的引用和 isSelected 的标志。像这样:
我正在尝试填充嵌套在其他引用中的引用。我已经可以工作了,但看起来有点老套,想知道是否还有其他方法可以实现这一点: return Q.ninvoke(BoardSchema, 'find', {'_id
使用 Mongoose 作为 NodeJS 的 ODM,但不完全理解错误处理的工作原理。它可以工作,但看起来不正确,并且不符合文档,所以我担心走这条路以后会困扰我。 例如,以下是基本登录路线: app
我是 mongodb 和 mongoose 的新手,我在获取子子数组时遇到了麻烦。 我的数据是这样的: [ {_id : ..., name : 'Category nam
Request.findOne({_id: id}).populate("user").exec(function(err, request) { if (!err) { re
假设我有一个如下所示的 ABC 架构: ABC = mongoose.Schema ({ name: String , x: String , y: String ,
这个问题已经有答案了: How do you turn a Mongoose document into a plain object? (9 个回答) mongoose .find() method
我正在编写一个应用程序,使用 Node.js 和 MongooseJS 作为处理数据库调用的中间件。 我的问题是我有一些嵌套模式,其中一个以错误的方式填充。当我跟踪人口的每一步时 - 所有数据都很好,
我是一名优秀的程序员,十分优秀!