我正在尝试通过Google数据存储学习NoSQL,但是我遇到了唯一性问题。
考虑一个电子商务商店,它具有类别和产品。
您不希望数据库中具有相同SKU的两个产品。
所以我用JSON插入了一个实体:
{"sku": 1234, "product_name": "Test product"}
Run Code Online (Sandbox Code Playgroud)
它显示了两个字段。但是之后我可以再次这样做,并且我有两个或更多相同的产品。
您如何避免这种情况?可以使sku字段唯一吗?
插入之前是否需要查询?
类别也会出现相同的问题。我是否应该对所有类别都使用一个实体,然后在JSON中进行结构化?
这是什么好习惯?
database google-app-engine transactions google-cloud-datastore google-cloud-platform
我正在为我的项目使用 Google Cloud Datastore(而不是 NDB)。
python2.7 和 Django。
我想创建一个新模型,比如说标签模型。
class Tag(db.Model):
name = ndb.StringProperty()
feature = ndb.StringProperty(default='')
Run Code Online (Sandbox Code Playgroud)
我已经多次向模型添加属性,但尚未创建新模型。
我的问题是,当我使用 mySQL 为我的另一个项目更改 Django 中的模型架构时,我总是执行 manage.py migrate。
我是否还必须为 Datastore 执行迁移命令?
或者我只需要定义模型就可以了?
提前致谢!
django google-app-engine python-2.7 google-cloud-datastore google-cloud-platform
我目前使用Firebase实时数据库为我的本机反应移动应用程序,我一直在寻找一些提供更好的查询功能的替代方案.Firestore的一个优点是它的查询功能.我想检查Firestore是否支持React Native.
在数据存储区上使用仅密钥查询,然后从memcache中获取实体是一种便宜的机制,可以同时读取大量实体.例如,可以对1000个密钥进行仅密钥查询,这可以用于从memcahce获取实体,而不必执行许多(如果有的话)数据存储区读取.
云端Firestore是否会提供此类内容?
database firebase google-cloud-datastore google-cloud-platform google-cloud-firestore
这是关于最新的Firebase Cloud Firestore的问题.在这个文档中,它是这样说的:
它还允许表达性查询.查询按结果集的大小进行缩放,而不是数据集的大小,因此您将获得相同的性能,从100或100,000,000的集合中获取1个结果.
这个陈述对我来说并不清楚.你能解释一下这个用例吗?
由于firestore是新的,我在使用它时遇到了问题.
我必须得到所有用户的集合并遍历它.但它没有用.
db.collection("users").get().then(function(querySnapshot){
console.log(querySnapshot.data());
});
Run Code Online (Sandbox Code Playgroud)
它说:
querySnapshot.data不是一个函数
以下代码:
callFireBase(mobileToCheck){
db.collection("users").where("mobile_no", '==', mobileToCheck).get().then(function(querySnapshot){
if (querySnapshot.exists) {
var userData = querySnapshot.data();
var userId = querySnapshot.id;
console.log(mobileToCheck + "Exist In DB");
}else{
console.log(mobileToCheck + "Do Not Exist In DB");
}
});
}
Run Code Online (Sandbox Code Playgroud)
总是打印
923052273575在DB中不存在
即使存在,请参阅以下图像以供参考.在文档中,他们告诉我(我已经使用过)这种方式.
我正在学习在我的项目中实现angularfire2.不幸的是我现在卡住了.我设置了像这里描述的Angular-Project
https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md
我还在firebase中使用规则集设置了一个数据库
{
"rules": {
".read": "true",
".write": "true"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在浏览器中的控制台中运行应用程序时,会出现以下错误
错误错误:未为项目启用Cloud Firestore API
现在我找到了一种在这里启用API的方法
https://console.cloud.google.com/apis/library/firestore.googleapis.com/?project=projectname
现在离开我的错误
错误错误:权限丢失或不足
我现在的问题是我可以设置API密钥(但也从我的firebase控制台获得了不同的API密钥?)和OAuths,但我不知道如何实现这些是我的代码.只是简单地生成一个API密钥并在environment.firebase配置中使用该密钥不起作用.如果有人知道任何事情会很棒.我会继续尝试,让你知道我是否也能让它运作起来.
node.js angularjs firebase angularfire2 google-cloud-firestore
我有简单的应用程序与产品列表.产品存储在Firebase Firestore中.我想下载产品列表,并为用户提供更新某些数据的可能性.
所以我准备了产品清单:
Widget _buildProductsList() {
return new StreamBuilder(
stream: Firestore.instance
.collection('products')
.snapshots,
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text("Loading...");
return new ListView(
children: snapshot.data.documents.map((document) {
Product product = new Product(document.data);
_ProductCell cell = new _ProductCell();
cell.product = product;
return cell;
}).toList(),
);
},
);
}
Run Code Online (Sandbox Code Playgroud)
我将文档快照序列化为我的Product对象:
class Product {
static const NAME_KEY = 'name';
static const DESC_KEY = 'desc';
static const PHOTO_URL_KEY = 'photoUrl';
static const AUTHOR_ID_KEY = 'authorId';
static const CREATED_AT_KEY = 'createdAt';
String name;
String …Run Code Online (Sandbox Code Playgroud) 使用AngularFire2我尝试从单个Firestore文档中获取数据.有效的是:
this.addressRef = afs.doc<Address>('addresses/key')
this.addressRef.valueChanges().subscribe(val => {......}
Run Code Online (Sandbox Code Playgroud)
我想只运行一次订阅代码.通常我使用take(1)来实现这一点(与Firebase DB一起使用).但是这段代码:
this.addressRef.valueChanges().take(1).subscribe(val => {......}
Run Code Online (Sandbox Code Playgroud)
给出错误:TypeError:this.addressRef.valueChanges(...).take不是函数.
VS Code列出了采取行动.这是AngularFire2中的一个错误,我做错了还是有其他(更好的)方法在获取数据后停止订阅?我也尝试过topromise,但这也失败了.
在我的Firestore数据库中,我有一个收集APP.
它有一个文档doc1.
doc1还有一个子集合coll1.
请考虑以下示例.
let db = firebaseApp.firestore();
db.collection('APP').doc('doc1').get()
.then(doc => {
let doc1Data = doc.data();
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能在响应中检查集合.或者当我已经知道有一个子集合coll1时,我该如何遍历其文档.
firebase ×8
database ×4
angular ×2
node.js ×2
angularfire ×1
angularfire2 ×1
angularjs ×1
dart ×1
django ×1
flutter ×1
ionic3 ×1
javascript ×1
python-2.7 ×1
react-native ×1
transactions ×1