我使用Mongoose.js,无法解决3级层次结构文档的问题。
有2种方法可以做到。
首先 -没有裁判。
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [C]
});
A = new Schema({
'title': String,
'b': [B]
});
我需要出示C记录。仅知道_id的C,如何填充/找到它?
我曾尝试使用:
A.findOne({'b.c._id': req.params.c_id}, function(err, a){
console.log(a);
});
但是我不知道如何从returnet得到一个对象,我只需要c对象。
其次,如果使用裁判:
C = new Schema({
'title': String,
});
B = new Schema({
'title': String,
'c': [{ type: Schema.Types.ObjectId, ref: 'C' }]
});
A = new Schema({
'title': String,
'b': [{ type: Schema.Types.ObjectId, ref: 'B' }]
});
如何填充所有B,C记录以获取层次结构?
我试图使用这样的东西:
A
.find({})
.populate('b')
.populate('b.c')
.exec(function(err, a){
a.forEach(function(single_a){
console.log('- ' + single_a.title);
single_a.b.forEach(function(single_b){
console.log('-- ' + single_b.title);
single_b.c.forEach(function(single_c){
console.log('--- ' + single_c.title);
});
});
});
});
但是它将为single_c.title返回undefined。我有填充的方法吗?
Thanks.
在Mongoose 4中,您可以跨多个级别填充文档:
假设您有一个User模式,该模式可以跟踪用户的朋友。
var userSchema = new Schema({
name: String,
friends: [{ type: ObjectId, ref: 'User' }]
});
首先populate()
,您可以获取用户朋友列表。但是,如果您还
希望用户的朋友成为朋友,该怎么办?在这种情况下,您可以指定一个populate
选项来告诉猫鼬填充friends
所有用户朋友的数组:
User.
findOne({ name: 'Val' }).
populate({
path: 'friends',
// Get friends of friends - populate the 'friends' array for every friend
populate: { path: 'friends' }
});
Taken from: http://mongoosejs.com/docs/populate.html#deep-populate
问题内容: 我使用Mongoose.js,无法解决3级层次结构文档的问题。 有2种方法可以做到。 首先 -没有裁判。 我需要出示C记录。仅知道_id的C,如何填充/找到它? 我曾尝试使用: 但是我不知道如何从returnet得到一个对象,我只需要c对象。 其次, 如果使用裁判: 如何填充所有B,C记录以获取层次结构? 我试图使用这样的东西: 但是它将为single_c.title返回undefin
我有两个收藏,一个是用户,另一个是猫。我想要猫的数据下我的用户集合。但我没有得到。 user.js
好吧,我有以下几个Shemas: 我想要的是让用户跟踪品牌,按品牌名排序,所以对于这样做,我对FollowAction进行查询,找到用户所做的所有FollowAction,然后填充brand字段。 所以问题是我不能为品牌名的查询排序,我知道的唯一方法是返回所有文档并从nodejs应用程序中对它们进行排序。有人知道我怎么能那样做吗??或者我是否应该改变shema结构?? 我所做的查询是:
Mongoose似乎不支持Mongo DBREF。显然,他们发布了“dbref”支持,但它实际上只是简单的引用(不具备引用不同集合中的文档的能力)。我终于创建了一个模式,允许我保存ObjectID引用的数组并填充它们,这对于我的模式的某些部分是很好的,但是如果我可以使用适当的DBREF创建一个数组,允许我引用来自多个集合的文档,那将是非常方便的。 幸运地(?)有一个模块可以在Mongoose中修补
我已经使用flapdoodle作为SpringBoot的嵌入式mongo。这工作很好,但我需要手动将数据放入其中。 对于mongo db的Junit测试,我使用nosqlunit。这与Fongo(假蒙哥)配合得非常好。它支持从json文件读取数据,并在启动期间用数据预填充数据库。但这只适用于junit,因为这是一个junit扩展。 我正在寻找的是上述两者的混合,一个嵌入式mongo,它不仅与JUn
问题内容: 使用mongoosejs填充和直接对象包含之间是否有性能差异(查询的处理时间)?什么时候应该使用? 猫鼬人口的例子: 猫鼬对象嵌套示例: 问题答案: 关于猫鼬种群的第一件事,是要了解它不是魔术,而只是一种方便的方法,它使您无需亲自完成所有操作即可检索相关信息。 该概念主要用于以下情况:您决定需要将数据放置在单独的集合中,而不是将数据嵌入其中,并且主要考虑因素通常应在文档大小上,或者在相