我是meteor和mongoDB的新手,并且一直在寻找这个问题的答案而没有任何运气。 我在MongoDB中有多个文档,类似于下面的文档:
{
"_id" : ObjectId("5abac4ea0c31d26804421371"),
"Points" : [
{
"Value" : 6.869752766626993,
"Time" : 1522284528946
},
{
"Value" : 3.9014587731230477,
"Time" : 1522284543946
},
{
"Value" : 1.2336926618519772,
"Time" : 1522284558946
},
{
"Value" : 6.504837583667155,
"Time" : 1522284573946
},
{
"Value" : 9.824138227740864,
"Time" : 1522284588946
},
{
"Value" : 9.707480757899235,
"Time" : 1522284603946
},
{
"Value" : 4.6122167850338105,
"Time" : 1522284618946
}
]
}
如何在meteor中实现一个查询,该查询返回一个数组,其中包含“Time”字段大于特定值的所有文档中的所有点?
答案 0 :(得分:0)
正如Jankapunkt在他的评论中指出的那样,如果你创建了一个新的集合 Points ,它可能会容易得多,其中每个文档只包含 Value 和时间属性。然后,给定的示例将成为七个单独的文档而不是单个数组。
然而,我们想要根据一些内在价值来查询文档,例如数组中对象的属性。
取自mongodb documentation on querying embedded documents,我们可以使用点符号。
如果您不知道嵌套在数组中的文档的索引位置,请连接数组字段的名称,并使用点(。)和嵌套文档中字段的名称。
例如您的问题(假设积分是您的收藏品的名称):
True if dict and key in dict else False;
在Meteor中几乎完全相同:
@api.model
def create(self, vals):
record = super(Employee, self).create(vals)
if record.name and record.birthday:
return self.env['hr.birthday'].create({
'name': record.name,
'birthday_date': record.birthday
})
return record