使用nodejs的Google数据存储区查询

时间:2017-03-10 14:57:42

标签: node.js google-app-engine google-cloud-datastore

有一种方法可以使用nodejs和google云数据存储来获取所有数据。

var query = ContactModel.query();//contact model is a schema which instantiates gstore schema

query.run().then((result) => {
    const response = result[0];
     var entities       = response.entities;
    callback('',entities);
});

有没有办法运行自定义查询或只是说使用nodejs和google-datastore的过滤器。我只能找到一个使用nodejs和google-dataStore的查询示例。

2 个答案:

答案 0 :(得分:0)

var query = ContactModel.query()

query.filter(key, value)

query.run().then((result) => {
  const response = result[0],
        entities = response.entities

  callback('',entities)
})

过滤函数将根据键和值进行过滤,过滤函数采用可选的第三个参数,第三个是等于,小于等的条件。但是如果只提供两个参数,它将检查是否平等。还有其他功能,如限制,订单,groupBy等。查找文档here

答案 1 :(得分:0)

我建议你使用gstore-node,它有一个非常简单有效的API,documentation有很多关于如何进行高级查询的例子

对于example in the documentation,详细说明了如何列出所有元素

// blog-post.model.js

// Create Schema
const blogPostSchema = new gstore.Schema({
    title : { type: 'string' },
    isDraft: { type: 'boolean' }
});

// List query settings
const listQuerySettings = {
    limit : 10,
    order : { property: 'title', descending: true }, // descending defaults to false and is optional
    select : 'title',
    ancestors : ['Parent', 123],  // will add an "hasAncestor" filter
    filters : ['isDraft', false] // operator defaults to "=",
};

// Add settings to schema
blogPostSchema.queries('list', listQuerySettings);

// Create Model
const BlogPost = gstore.model('BlogPost', blogPostSchema);